为什么Gradle在缺少的项目属性上引发错误

Tho*_*mas 5 gradle

我正在使用maven-publish插件将工件发布到nexus存储库。我不想将我的nexus存储库的实际凭据放入build.gradle文件中。所以我决定使用如下所示的项目属性

credentials {
            username "$nexus_username"
            password "$nexus_password"
}
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用gradle publish -Pnexus_username=<myusername> -Pnexus_password=<mypass>将工件发布到我的关系库中。但是,继续传递此项目属性以进行常规gradle构建没有任何意义。如果我不通过gradle,则会抛出错误,表示Could not find property 'nexus_username'有人知道解决此问题的更好方法。

Tho*_*mas 5

经过一番挖掘找到了解决方案

if(! hasProperty("nexus_username")){
    ext.nexus_username=""
}
if(! hasProperty("nexus_password")){
    ext.nexus_password=""
}
Run Code Online (Sandbox Code Playgroud)

如果项目属性不可用,我在这里正在创建空白的用户名和密码。但是我仍然觉得这是一个解决方法,而不是正确的解决方案。如果有人找到更优雅的解决方案,请回复。