gradle with Java:什么时候在Java中使用gradle时创建.m2文件夹


  1. 在这里,我知道依赖项是从maven存储库下载的。并想知道当我执行此操作时是否会创建 .m2 文件夹。或者这将在不创建 .m2 本地存储库的情况下工作。我读到本地存储库仅适用于 maven,而不是等级。因此,在这种情况下,Gradle 用于访问 maven 存储库以下载依赖项,是否需要 .m2 文件夹。
  2. 何时创建此 .m2 文件夹?
  3. Gradle 构建成功后,我确实检查了我的 {用户主页},但没有创建 .m2
  4. 我确实尝试从谷歌获取信息,但对此没有任何了解。 对 Gradle 在构建项目时如何使用 .m2 感到困惑。
apply plugin: 'eclipse'
apply plugin: 'maven'
apply plugin: 'idea'
apply plugin: 'groovy'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
//Artifactory Central Repository
buildscript {
repositories {
maven {
url 'abc'
credentials {
username = ""
password = ""
}

Gradle 依赖缓存

Gradle 使用自己的依赖项缓存:

Gradle 包含高度复杂的依赖缓存机制,旨在最大限度地减少依赖关系解析中发出的远程请求数量,同时努力保证依赖关系解析的结果正确且可重现。

Gradle 依赖项缓存由位于GRADLE_USER_HOME/caches下的两种存储类型组成:

  • 下载工件的基于文件的存储,包括二进制文件(如 jar)以及原始下载的元数据(如 POM 文件和常春藤文件)。下载项目的存储路径包括 SHA1 校验和,这意味着可以轻松缓存 2 个名称相同但内容不同的项目。
  • 已解析模块
  • 元数据的二进制存储,包括解析动态版本、模块描述符和项目的结果。

[...]

其中,如此处所述,GRADLE_USER_HOME是:

Gradle 用户主目录(默认$USER_HOME/.gradle)用于存储全局配置属性和初始化脚本以及缓存和日志文件。[...]


本地 Maven 存储库

您可以将 Gradle 配置为搜索本地 Maven 存储库:

[...]

要将本地 Maven 缓存声明为存储库,请将以下内容添加到构建脚本中:

例 8.将本地 Maven 缓存添加为存储库

repositories {
mavenLocal() 
}

Gradle 使用与 Maven 相同的逻辑来标识本地 Maven 缓存的位置。如果在settings.xml中定义了本地存储库位置,则将使用此位置。USER_HOME/.m2中的settings.xml优先于M2_HOME/conf中的settings.xml。如果没有可用的settings.xml,Gradle 将使用默认位置USER_HOME/.m2/repository

但是请注意,Gradle 警告不要使用本地 Maven 存储库,除非您确实需要它。

如果需要,使用 maven-publish 插件,您可以发布到本地 Maven 存储库:

为了与本地 Maven 安装集成,有时将模块与其 POM 文件和其他元数据一起发布到 Maven 本地存储库(通常位于$USER_HOME/.m2/repository)中很有用。在 Maven 的说法中,这被称为"安装"模块。

Maven 发布插件通过自动为publishing.publications容器中的每个MavenPublication创建PublishToMavenLocal任务来轻松做到这一点。任务名称遵循publishubNamePublicationToMavenLocal的模式。其中每个任务都连接到publishToMavenLocal聚合任务中。您不需要在publishing.repositories部分中mavenLocal()

最新更新