到了新的环境gradle build
需要相当长的时间,因为必须下载所有依赖项。
有没有办法只下载依赖项以加快后续构建的速度?
这样我们就可以预先填充 CI 构建环境。
编辑:针对 Gradle 6+ 进行了更新。
一些注意事项:
- 这种新方法将 jar 下载到文件夹中,然后删除该文件夹。因此,将 jar 放在 Gradle 缓存中的结果是一个副作用。
- 它当前使用为以下配置的 jars
main
源集但可以推广。
- 尽管它既不高效也不优雅,但如果您确实想要 jar(和传递依赖项),它可能会很有用:只需注释掉删除
runtime
文件夹。
当您wantjars(和传递依赖项),因为您只需注释掉删除文件夹即可。
考虑一下这个build.gradle
(作为一个任意的具体例子):
apply plugin: 'java'
dependencies {
implementation 'org.apache.commons:commons-io:1.3.2'
implementation 'org.kie.modules:org-apache-commons-lang3:6.2.0.Beta2'
}
repositories {
jcenter()
}
task getDeps(type: Copy) {
from sourceSets.main.runtimeClasspath
into 'runtime/'
doFirst {
ant.delete(dir: 'runtime')
ant.mkdir(dir: 'runtime')
}
doLast {
ant.delete(dir: 'runtime')
}
}
运行示例:
$ find /Users/measter/.gradle/caches -name "commons-io*1.3.2.jar"
$ gradle getDeps
$ find /Users/measter/.gradle/caches -name "commons-io*1.3.2.jar"
/Users/measter/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/1.3.2/[snip]/commons-io-1.3.2.jar
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)