gradle 快速入门
gradle 依赖管理基础
Gradle 中依赖以组的形式来划分不同的配置。每个配置都只是一组指定的依赖。我们称之为依赖配置 。你也可以借由此声明外部依赖。后面我们会了解到,这也可用用来声明项目的发布。
依赖配置:
compile
编译范围依赖在所有的 classpath 中可用,同时它们也会被打包
runtime
runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要 JDBC API JAR,而只有在运行的时候才需要 JDBC 驱动实现
testCompile
测试期编译需要的附加依赖
testRuntime
测试运行期需要
不同的插件提供了不同的标准配置,你甚至也可以定义属于自己的配置项。
仓库
Gradle 是在一个被称之为仓库的地方找寻所需的外部依赖。仓库即是一个按 group,name 和 version 规则进行存储的一些文件。Gradle 可以支持不同的仓库存储格式,如 Maven 和 Ivy,并且还提供多种与仓库进行通信的方式,如通过本地文件系统或 HTTP。
默认情况下,Gradle 没有定义任何仓库,你需要在使用外部依赖之前至少定义一个仓库,例如 Maven 中央仓库。
使用 Maven 中央仓库
repositories {
mavenCentral()
}
使用 Maven 远程仓库
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
采用 Ivy 远程仓库
repositories {
ivy {
url "http://repo.mycompany.com/repo"
}
}
采用本地 Ivy 目录
repositories {
ivy {
// URL can refer to a local directory
url "../local-repo"
}
}
一个项目可以采用多个库。Gradle 会按照顺序从各个库里寻找所需的依赖文件,并且一旦找到第一个便停止搜索。
打包发布
依赖配置也被用于发布文件我们称之为打包发布或发布。
插件对于打包提供了完美的支持,所以通常而言无需特别告诉 Gradle 需要做什么。但是你需要告诉 Gradle 发布到哪里。这就需要在 uploadArchives 任务中添加一个仓库。下面的例子是如何发布到远程 Ivy 仓库的:
发布到 Ivy 仓库
uploadArchives {
repositories {
ivy {
credentials {
username "username"
password "pw"
}
url "http://repo.mycompany.com"
}
}
}
执行 gradle uploadArchives,Gradle 便会构建并上传你的 jar 包,同时会生成一个 ivy.xml 一起上传到目标仓库。
当然你也可以发布到 Maven 仓库中。语法只需稍微一换就可以了。
p.s:发布到 Maven 仓库你需要 Maven 插件的支持,当然,Gradle 也会同时产生 pom.xml 一起上传到目标仓库。
发布到 Maven 仓库
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}
}