gradle 命令有一堆标志来自定义其环境 [1]。其中有--build-file和--settings-file。但我似乎无法让他们按照我期望的方式工作。
我期望以下内容能够发挥作用
$ cat <<-EOF > alt-settings.gradle
rootProject.name = 'custom-name'
EOF
$ cat <<-EOF > alt-build.gradle
task test { /* ... */ }
EOF
$ gradle \
--settings-file alt-settings.gradle \
--build-file alt-build.gradle \
tasks --all
Run Code Online (Sandbox Code Playgroud)
但这会引发异常
Build file './alt-build.gradle' is not part of the build defined by settings file './alt-settings.gradle'. If this is an unrelated build, it must have its own settings file.
Run Code Online (Sandbox Code Playgroud)
如果我--settings-file从上面的命令中省略,事情就会起作用,并且 gradle 会启动alt-build.gradle。
出了什么问题,我该如何解决这个问题?
gradle理想情况下,我希望即使在 settings.gradle 文件不起作用的情况下也能够运行。例如在下面的场景中
Build file './alt-build.gradle' is not part of the build defined by settings file './alt-settings.gradle'. If this is an unrelated build, it must have its own settings file.
Run Code Online (Sandbox Code Playgroud)
[1] https://docs.gradle.org/current/userguide/command_line_interface.html#environment_options
您需要在自定义设置文件中配置自定义构建文件,然后在调用 gradle 时仅使用 --settings-file 参数。
替代设置.gradle:
rootProject.name = 'custom-name'
rootProject.buildFileName = 'alt-build.gradle'
Run Code Online (Sandbox Code Playgroud)
替代构建.gradle:
task test { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
梯度调用:
gradle --settings-file alt-settings.gradle tasks --all
Run Code Online (Sandbox Code Playgroud)
这样,根本不使用默认的构建和设置文件,并且它们是否工作并不重要。
更新较新的 gradle 版本(在 haridsv 发表评论后,使用版本 8.0.1 进行测试):
gradle 升级指南 ( https://docs.gradle.org/8.0.1/userguide/upgrading_version_7.html#configuring_custom_build_layout ) 提供了有关如何处理自定义构建布局的建议。您可以在设置文件和/或构建文件中使用 if 语句来获得不同的构建,如下所示
if (System.getProperty("profile") == "custom") {
println("custom profile")
} else {
println("default profile")
}
Run Code Online (Sandbox Code Playgroud)
else 分支包含您的默认构建,您可以通过调用 gradle 来执行它,如下所示:
gradle tasks --all
Run Code Online (Sandbox Code Playgroud)
如果你想运行自定义构建,你需要使用命令行选项调用 gradle -D。就像这样:
gradle -Dprofile=custom tasks --all
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4360 次 |
| 最近记录: |