Gradle多项目命名:如何为所有子项目设置属性(例如baseName)?

Gradle多项目命名:如何为所有子项目设置属性(例如baseName)?,gradle,multi-project,Gradle,Multi Project,我开始在多个项目中使用Gradle。然而,Gradle手册并没有给出很多关于子项目命名的最佳实践的提示 我有一个名为“数据记录器”的多项目,它由两个子项目“核心”和“条目”组成: - datalogger --- core --- entries 当我构建项目时,我会得到jar'core-1.0.jar'和'entries-1.0.jar'。如何以通用方式管理命名为“datalogger-core-1.0.jar”和“datalogger-entries-1.0.jar”?我知道,我可以按如下

我开始在多个项目中使用Gradle。然而,Gradle手册并没有给出很多关于子项目命名的最佳实践的提示

我有一个名为“数据记录器”的多项目,它由两个子项目“核心”和“条目”组成:

- datalogger
--- core
--- entries
当我构建项目时,我会得到jar'core-1.0.jar'和'entries-1.0.jar'。如何以通用方式管理命名为“datalogger-core-1.0.jar”和“datalogger-entries-1.0.jar”?我知道,我可以按如下方式更改文件夹的名称:

- datalogger
--- datalogger-core
--- datalogger-entries
但我认为这不是一个好办法。我还可以手动更改每个项目的
archivesBaseName
。但我更愿意像前面提到的那样,找到一种通用的方法来实现这一点

subprojects {
    tasks.withType(Jar) {
        baseName = "datalogger-$project.name"
    }
}

或者,您可以以类似的方式设置archivesBaseName。

我们通过重命名子项目来处理此问题,在创建/命名JAR时将考虑新名称: 参考:


通过命名每个子项目spring xxx来实现。也这样做。@JBNizet:谢谢,也许这并不像我一开始想象的那样是一种不好的做法。它实际上可以解决所有问题
include 'xxx', 'yyy'
rootProject.children.each { it.name = rootProject.name + it.name }