当我使用以下命令执行gradle时:
./gradlew publishToMavenLocal -PsplainVersion=null
我得到了以下错误:
...
> Could not resolve all files for configuration ':graph-commons:scalaCompilerPlugins'.
> Could not resolve io.tryp:splain_2.13.6:null.
null似乎没有被正确解析为控制令牌,而是变成了一个字符串。是否有一种方法来帮助Gradle理解它作为一个真正的空值?
Gradle将有效地将任何东西视为某种类型的参数。没有null检查。
所以如果你需要确保一个空参数没有给你的构建脚本,那么你需要验证参数不是空的,它正在被使用。
tasks.register("verifyNonNull") {
onlyIf {
property("splainVersion") != 'null'
}
}
如果你对Gradle的逻辑很好奇,可以查看CommandLineParser
的源代码。