将Gradle包装器(./gradlew.sh)与子项目一起使用

Jas*_*son 13 gradle

我有一个包含多个子项目的多项目构建,我想使用gradle包装器.

这样做的惯用方法是什么?

我应该通过build.gradle在根目录中添加以下代码来配置每个子项目中的包装器吗?

allprojects {
    task wrapper(type: Wrapper) {
        gradleVersion = '2.2'
    }
}
Run Code Online (Sandbox Code Playgroud)

但后来,我想和你所有的gradlew.bat,gradlew.sh,gradle/wrapper/gradle-wrapper.jar从等文件,所有的子项目目录到版本控制?这似乎效率低下,但如果我不这样做,那我怎样才能./gradlew.sh在子项目目录中执行?在子项目中使用gradle包装器的首选方法是什么?

在这种情况下,开发人员是否只使用文件系统上安装的gradle?

最重要的问题是第一个问题:这样做的惯用方法是什么?

jef*_*l8n 13

你应该只是有allprojects外面的包装任务模块,所以你只能有一个gradlew.bat,gradlew.shgradle/wrapper/gradle-wrapper.jar你的项目结构的顶层.

您可以运行./gradlew tasks --all以验证包装器是否可以查看子项目任务

或者,您可以运行该./gradlew <subproject_name>:tasks命令以仅查看一个子项目的任务.

  • 这是正确的方法.另外,你可以在你的`PATH`上放置第三方`gradle(w)`脚本,例如https://github.com/cbeams/dotfiles/blob/home/bin/gradle,它将搜索"真实的"`父目录中的gradlew`脚本.然后你可以写`gradlew`而不是`./gradlew`或`../ gradlew`. (7认同)