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”,“外部”等配置文件客户“等等.

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

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...