Java 运行时"/格拉德卢<;任务>&引用;在命令行中,读取哪个文件?

Java 运行时"/格拉德卢<;任务>&引用;在命令行中,读取哪个文件?,java,gradle,command-line,build.gradle,gradlew,Java,Gradle,Command Line,Build.gradle,Gradlew,我做了一些挖掘,但没有发现多少信息 我最好的猜测是build。gradle文件是默认文件,但我对其行为和读取的文件很好奇。在本例中build.gradle是在运行gradlew的同一目录下读取的。也可以读取的另一个文件是settings.gradle,但不能在其中声明任务 要运行不同的gradle脚本,请使用-b开关并将路径传递给脚本 另外,为什么您认为可能会读取任何其他文件?另一个答案涵盖了99.99%的所有构建,但它并不完整 完整的命令是/gradlew[-b/--build file][c

我做了一些挖掘,但没有发现多少信息


我最好的猜测是
build。gradle
文件是默认文件,但我对其行为和读取的文件很好奇。

在本例中
build.gradle
是在运行
gradlew
的同一目录下读取的。也可以读取的另一个文件是
settings.gradle
,但不能在其中声明任务

要运行不同的gradle脚本,请使用
-b
开关并将路径传递给脚本


另外,为什么您认为可能会读取任何其他文件?

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

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


下面是一些例子(很抱歉,你可以在Linux上找到不推荐的
。例如,打电话给
strace-f-o strace.log./gradlew clean
。然后扫描日志,查找
open
@ThomasFritsch,lol,这确实是这个问题的最完整答案!你能接受答案而不是我的吗,它要好得多。我在想,也许是这样的。)浏览了所有的.gradle文件并读取了它们,但这就清除了它,谢谢!请注意,只有在使用
-u
/
--无向上搜索
选项运行gradle时,这才是正确的。没有此选项,gradle将在父目录中搜索
设置。gradle
文件以进行多项目配置。令人惊讶的评论。A构建和设置文件的结合对自定义shell脚本(CI/CD)非常有帮助。非常感谢您的评论
task hello << { println "Hello" }
$ ./gradlew hello
:hello
Hello
task hello << { println "Hi!" }
$ ./gradlew -b custom.gradle hello
:hello
Hi!
task hello << { println "Konnichi wa" }
rootProject.buildFileName = 'custom.gradle'
./gradlew hello # note that we don't need any flags here as with a default build
:hello
Konnichi wa
task hello << { println "Aloha!" }
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!