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

时间:2017-10-05 07:25:24

标签: gradle

基于文档:

  

如果使用-b选项,则不使用settings.gradle文件。

但是我创建了这个简单的项目:

.
├── 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打印“From settings.gradle,在初始化阶段执行”。为什么? 使用settings.gradle时,-b不应该被忽略吗?

1 个答案:

答案 0 :(得分:1)

虽然指定了@NgModule({ providers: [ {provide: MATERIAL_COMPATIBILITY_MODE, useValue: true}, // ... ], }) ,但可能是settings.gradle使用的错误,但-b仅用于快速测试和试验。

在我看来,你应该总是-b e。 G。明确指定根项目名称,而不是从根项目目录名称派生它。

如果您确实需要彼此不同的构建脚本,那么您可以使用不同的设置脚本指向不同的构建脚本,然后使用settings.gradle选择正确的设置脚本而不是{ {1}}。