Gradle 依赖管理


Gradle构建脚本定义了一个构建项目的过程; 每个项目都包含一些依赖项和一些出版物。依赖关系意味着支持构建项目的东西,例如来自其他项目的JAR文件以及类路径中的JDBC JAR或Eh-cache JAR等外部JAR。出版物是指项目的结果,如测试类文件和构建文件,如战争文件。

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

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

声明你的依赖

Gradle遵循一些特殊的语法来定义依赖关系。以下脚本定义了两个依赖关系,一个是Hibernate核心3.6.7,另一个是版本4.0及更高版本的Junit。看看下面的代码。在 build.gradle 文件中使用此代码。

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.+'
}

依赖配置

依赖配置只不过是定义了一组依赖关系。您可以使用此功能来声明您想要从网站下载的外部依赖关系。这定义了以下不同的标准配置。

  • 编译 - 编译项目生产源所需的依赖关系。

  • 运行时 - 运行时生产类所需的依赖关系。 默认情况下,还包含编译时依赖关系。

  • 测试编译 - 编译项目测试源所需的依赖关系。 默认情况下,它包含编译的生产类和编译时间依赖关系。

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

外部依赖性

外部依赖是一种依赖。这是对当前构建之外构建的一些文件的依赖,并存储在某种类的存储库中,如Maven central,公司Maven或lvy存储库或本地文件系统中的目录。

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

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

外部依赖关系声明外部依赖关系,快捷方式窗体看起来像“group:name:version”。

同时添加外部依赖关系。Gradle在存储库中查找它们。存储库只是按组,名称和版本组织的文件集合。默认情况下,Gradle不定义任何存储库。我们必须明确定义至少一个存储库。以下代码片段定义了如何定义Maven存储库。在 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/")
      }
   }
}