Gradle - 依赖管理

Gradle 构建脚本定义了构建项目的过程; 每个项目都包含一些依赖项和一些出版物。 依赖是指在构建项目时支持的东西,例如来自其他项目的所需 JAR 文件以及类路径中的 JDBC JAR 或 Eh-cache JAR 等外部 JAR。

出版物是指项目的成果,例如测试类文件、构建文件和 war 文件。

所有项目都不是独立的。 他们需要其他项目构建的文件来编译和测试源文件。 例如,为了在项目中使用 Hibernate,您需要在类路径中包含一些 Hibernate JAR。 Gradle 使用了一些特殊的脚本来定义依赖,需要下载。

Gradle 负责构建和发布结果。 发布基于您定义的任务。 它可能想要将文件复制到本地目录,或者将它们上传到远程 Maven 或 lvy 存储库,或者您可能在同一个多项目构建中使用来自另一个项目的文件。 我们可以将发布任务的过程称为发布。


声明你的依赖

依赖配置定义了一组依赖。 您可以使用此功能声明要从 Web 下载的外部依赖项。 这定义了不同的标准,如下所示。


apply plugin: 'java'

repositories {
   mavenCentral()
}

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

依赖配置

依赖配置定义了一组依赖。 您可以使用此功能声明要从 Web 下载的外部依赖项。 这定义了以下不同的标准配置。

  • 编译 − 编译项目生产源所需的依赖。

  • 运行时 − 生产类在运行时所需的依赖项。 默认情况下,它还包括编译时依赖项。

  • 测试编译 − 编译项目的测试源所需的依赖项。 默认情况下,它包括已编译的生产类和编译时依赖项。

  • 测试运行时 − 运行测试所需的依赖项。 默认情况下,它包括运行时和测试编译依赖项。


外部依赖

外部依赖是依赖的一种。 这是对在当前构建之外构建的一些文件的依赖,并存储在某种存储库中,例如 Maven 中央存储库,或企业 Maven 或 lvy 存储库,或作为本地文件系统的目录 I。

下面的代码片段是定义外部依赖。 在 build.gradle 文件中使用此代码。

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

一个外部依赖声明了外部依赖,快捷形式看起来像 "group: name: version"


存储库

在添加外部依赖项时,Gradle 会在存储库中查找它们。 按组、名称和版本组织的文件集合称为存储库。 默认情况下,Gradle 不定义任何存储库。 我们必须明确定义至少一个存储库。 以下代码片段定义了如何定义 Maven 存储库。 在 build.gradle 文件中使用此代码。

build.gradle 文件中使用以下代码 −

repositories {
   mavenCentral()
}

以下代码是定义远程 maven。 在 build.gradle 文件中使用此代码。

repositories {
   maven {
    url "http://repo.mycompany.com/maven2"
   }
}

发布工件

依赖配置也用于发布文件。 这些已发布的文件称为工件。 通常,我们使用插件来定义工件。 但是,您确实需要告诉 Gradle,将工件发布到哪里。

您可以通过将存储库附加到上传档案任务来实现此目的。 看看以下发布 Maven 存储库的语法。 在执行时,Gradle 会根据项目要求生成并上传一个 Pom.xml

build.gradle 文件中使用此代码。

apply plugin: 'maven'

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: "file://localhost/tmp/myRepo/")
      }
   }
}