Gradle - 依赖管理
Gradle构建脚本定义了一个构建项目的流程;每个项目都包含一些依赖项和一些发布物。依赖项是指支持构建项目的事物,例如来自其他项目的所需JAR文件和类路径中的外部JAR文件,例如JDBC JAR或Eh-cache JAR。
发布物是指项目的成果,例如测试类文件、构建文件和war文件。
并非所有项目都是独立的。它们需要由其他项目构建的文件来编译和测试源文件。例如,为了在项目中使用Hibernate,您需要在类路径中包含一些Hibernate JAR文件。Gradle使用一些特殊的脚本定义需要下载的依赖项。
Gradle处理构建和发布成果。发布基于您定义的任务。它可能希望将文件复制到本地目录,或将它们上传到远程Maven或Ivy存储库,或者您可能在同一多项目构建中使用来自另一个项目的文件。我们可以将发布过程称为发布任务。
声明您的依赖项
依赖配置定义一组依赖项。您可以使用此功能声明要从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下载的外部依赖项。这定义了以下不同的标准配置。
编译 (Compile) − 项目编译生产源代码所需的依赖项。
运行时 (Runtime) − 生产类在运行时所需的依赖项。默认情况下,它还包括编译时依赖项。
测试编译 (Test Compile) − 项目编译测试源代码所需的依赖项。默认情况下,它包括已编译的生产类和编译时依赖项。
测试运行时 (Test Runtime) − 运行测试所需的依赖项。默认情况下,它包括运行时和测试编译依赖项。
外部依赖项
外部依赖项是一种依赖项类型。这是对当前构建外部构建并存储在某种类型的存储库(例如Maven中央存储库、公司Maven或Ivy存储库或本地文件系统中的目录)中的一些文件的依赖项。
以下代码片段用于定义外部依赖项。在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在哪里发布构件。
您可以通过将存储库附加到uploadArchives任务来实现此目的。查看以下发布Maven存储库的语法。执行时,Gradle将根据项目要求生成并上传Pom.xml。
在build.gradle文件中使用此代码。
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:///tmp/myRepo/")
}
}
}