2017-10-05 44 views
0

根据相关文档:当-b指定settings.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这个版画 “从settings.gradle,在初始化阶段执行” 反正。为什么? 使用-b时不应忽略settings.gradle

+0

你说得对,对不起!你正在运行哪个版本? – Opal

+0

这很好:)我使用Gradle 4.0。 – acejazz

+0

嗯..我准备了一个重现问题的例子,很奇怪。这可能是你的兴趣:https://discuss.gradle.org/t/how-to-set-multiproject-with-customized-build-script-b/7440/9 – Opal

回答

1

虽然指定了-b,但是-b只适用于快速测试和试验,但这可能是使用settings.gradle的错误。

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

如果你真的需要不同的编译脚本彼此相邻的也有不同的设置脚本,指向不同的构建脚本,然后使用-c来选择,而不是使用-b正确的设置脚本,你可以做些什么。

+0

这是文档是错的。 https://github.com/gradle/gradle/issues/3100 – acejazz

相关问题