如何在Gradle中设置构建属性(' -P '命令行参数)为空?



当我使用以下命令执行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的源代码。

最新更新