我在我的项目中使用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"
}
在每个项目中,这允许我运行&#34; gradle wrapper&#34;并生成gradlew脚本,该脚本将执行下载的gradle版本。当我查看由此任务生成的gradle-wrapper.properties(在每个子项目中)时,我的distributeUrl是来自我的包装器任务的绝对路径,而不是对common.gradle中的设置的动态/相对引用。
那么当我想升级到gradle的下一个版本时会发生什么?我是否需要在每个项目中重新运行gradle包装器?有没有办法让distrbutionUrl引用共享属性?
任何见解都将不胜感激。
答案 0 :(得分:0)
我现在只通过在父目录中运行gradle包装器解决了这个问题,所以我的项目结构如下:
project1
project2
<gradlew files>
在我的CI服务器上,然后使用-p选项指定子目录。像这样:
./gradlew -p project1 <target>
这对我们现在有效,直到gradlew成为彼得提到的二进制文件。请参阅GRADLE-1378。