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

How to set a build property (the `-P` commandline argument) to null in Gradle?

当我使用以下命令执行 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 将有效地将任何内容视为某种论点。没有任何空值检查。

因此,如果您需要确保没有为您的构建脚本提供空参数,那么您需要验证该参数在使用时不为空。

tasks.register("verifyNonNull") {
    onlyIf {
        property("splainVersion") != 'null'
    }
}

如果您对Gradle的逻辑感到好奇,请查看CommandLineParser的来源。