gradle - 当 -b 被指定时,settings.gradle 仍然被使用,即使它不应该被使用。为什么?

标签 gradle

根据文档:

If you use -b option then settings.gradle file is not used.



但我创建了这个简单的项目:
.
├── anotherBuild.gradle
├── build.gradle
└── settings.gradle

build.gradle包含:
task taskA{
    doLast{
        println "taskA from build.gradle"
    }
}
anotherBuild.gradle包含:
task taskA{
    doLast{
        println "taskA from anotherBuild.gradle"
    }
}

settings.gradle包含:
println "From settings.gradle, executed during initialization phase"

当我运行时:
gradle -q -b anotherBuild.gradle taskA

无论如何,我可以看到 gradle 打印“来自 settings.gradle,在初始化阶段执行”。为什么?
不应该 settings.gradle使用 -b 时被忽略?

最佳答案

settings.gradle 可能是一个错误。使用 -b已指定,但 -b无论如何,仅用于快速测试和实验。

在我看来,您应该始终拥有 settings.gradle e. G。明确指定根项目名称,而不是从根项目目录名称派生它。

如果您确实需要彼此相邻的不同构建脚本,您可以做的是也有不同的设置脚本指向不同的构建脚本,然后使用 -c选择正确的设置脚本而不是使用 -b .

关于gradle - 当 -b 被指定时,settings.gradle 仍然被使用,即使它不应该被使用。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46580105/

相关文章:

spring - 使用Gradle将Docker镜像推送到dockerhub时​​出错

intellij-idea - IntelliJ Gradle "Unable to find Method"

java - 从依赖关系中排除单个 .java 文件?

java - 错误: Could not find or load main class IntelliJ MacOs

gradle - Spock 为预期 : and where: blocks 内的 Gradle 任务方法提供临时文件

error-handling - .execute()命令失败时,失败Gradle TaskAction

Gradle Jacoco - 覆盖报告包括配置中排除的类

gradle - Gradle doFirst不更新WAR文件

testing - 不要运行测试任务 - gradle clean build -x test

gradle - 使用 annotationProcessor 和 log4j2 PluginProcessor 配置 gradle