如何从命令行重写Gradle`rootProject.name`?

如何从命令行重写Gradle`rootProject.name`?,gradle,Gradle,我正在编写一个测试,用于构建并发布到Artifactory。由于我不希望测试在并发运行时失败(例如由单独的构建作业或开发人员),因此我希望覆盖rootProject.name。可以从命令行执行此操作吗?我尝试了-ProotProject.name=${module}和-Pproject.archivesBaseName=${module}但是它们不起作用(后者确实有一些效果,但是工件仍然是用设置.gradle中的根项目.name设置发布的)。您必须编写设置.gradle脚本。例如: rootPr

我正在编写一个测试,用于构建并发布到Artifactory。由于我不希望测试在并发运行时失败(例如由单独的构建作业或开发人员),因此我希望覆盖
rootProject.name
。可以从命令行执行此操作吗?我尝试了
-ProotProject.name=${module}
-Pproject.archivesBaseName=${module}
但是它们不起作用(后者确实有一些效果,但是工件仍然是用
设置.gradle
中的
根项目.name
设置发布的)。

您必须编写
设置.gradle
脚本。例如:

rootProject.name = System.getProperty("rootProjectName")

现在,您可以使用
gradle build-DrootProjectName=foo运行

当您需要默认行为时,下面是一个稍微简单的版本,该默认行为在未被覆盖时仅通过默认行为

rootProject.name = System.getProperty('rootProjectName') ?: rootProject.name

如果缺少变量
rootProjectName
时需要默认行为:
rootProject.name=System.getProperty(“rootProjectName”)?:新文件('.').canonicalFile.name