我在我的项目中使用gradle wrapper,它会生成一些文件,以便在主机上下载和安装gradle。这些文件将检入到项目中。我的项目结构如下:
/common/common.gradle
/module-a/build.gradle
/module-b/build.gradle
/module-c/build.gradle
字符串
我的每个项目都从包含以下任务的共享common.gradle文件中应用通用设置:
task wrapper(type: Wrapper) {
distributionUrl = "http://<nexus>:8081/nexus/content/repositories/thirdparty/org/gradle/gradle-bin/1.10/gradle-bin-1.10-bin.zip"
}
型
在每个项目中,这允许我运行“gradle wrapper”并生成gradlew脚本,该脚本将执行gradle的下载版本。当我查看gradle-wrapper.properties由这个任务(在每个子项目中)生成的www.example.com时,我的distributionUrl是来自我的 Package 器任务的绝对路径,而不是对common. gradle中设置的动态/相对引用。
那么,当我想升级到下一个版本的gradle时会发生什么?我需要在每个项目中重新运行gradle wrapper吗?有没有什么方法可以让distributionUrl引用一个共享属性?
任何见解将不胜感激。
2条答案
按热度按时间gjmwrych1#
我现在通过只在父目录中运行gradle Package 器来解决这个问题,所以我的项目结构看起来像这样:
字符串
然后在CI服务器上使用-p选项指定子目录。就像这样:
型
这对我们来说是有效的,直到gradlew变成Peter提到的二进制。请参阅GRADLE-1378。
uajslkp62#
根据Gradle网站, Package 器可以通过以下方式升级:
./gradlew wrapper --gradle-version=8.2.1 --distribution-type=bin
更新版本,/gradlew tasks
下载ZIP文件。