微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 在命令行中运行“./gradlew”时,会读取哪个文件?

我做了一些挖掘,但没有找到太多信息.

我最好的猜测是build.gradle文件认的,但我对行为和读取的文件感到好奇.

解决方法

虽然另一个答案涵盖了所有构建的99.99%,但它并不完整.

完整命令是./gradlew [-b / –build-file< build.file>] [-c /-settings-file< settings.file>].当你运行它时,那些指定的< build.file>和< settings.file>将用于相应地配置构建及其设置.设置文件很特殊:它在构建的早期阶段配置你的Project对象,它实际上可以是override它的构建文件.

以下是示例(对于已弃用的<<,它仅用于缩短代码): 认build.gradle,没有settings.gradle: 的build.gradle:

task hello << { println "Hello" }

结果:

$./gradlew hello
:hello
Hello

自定义build.gradle,没有settings.gradle:

custom.gradle:

task hello << { println "Hi!" }

结果:

$./gradlew -b custom.gradle hello
:hello
Hi!

自定义build.gradle,在settings.gradle中配置:

custom.gradle:

task hello << { println "Konnichi wa" }

settings.gradle:

rootProject.buildFileName = 'custom.gradle'

结果:

./gradlew hello # note that we don't need any flags here as with a default build
:hello
Konnichi wa

自定义build.gradle,在自定义settings.gradle中配置:

custom.gradle:

task hello << { println "Aloha!" }

settings.custom:

rootProject.buildFileName = 'custom.gradle'

结果:

./gradlew -c settings.custom hello # note how we pass custom settings file which,in turn,specifies custom `build.gradle`
:hello
Aloha!

这些都非常花哨而且不实用,但是您可以将这些方法结合起来存储,例如,您在一个单独的目录中构建文件(覆盖buildFileName).或者你可以使用多个settings.gradle这样的“构建配置文件”,包含不同的包含(设置也用于包含你构建的项目,因此你可以拥有“完整版”,“ui”,“外部”等配置文件客户“等等.

你的想象力是唯一的限制.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐