Наименование нескольких проектов Gradle: Как я могу установить свойство (например, baseName) для всех подпроектов?
Я начал использовать Gradle для мульти-проектов. Тем не менее, руководство Gradle не дает много советов для наилучшей практики в отношении наименования подпроектов.
У меня есть мультипроект с именем "регистратор данных", который состоит из двух подпроектов "ядро" и "записи":
- datalogger
--- core
--- entries
Когда я собираю проект, я получаю jars 'core-1.0.jar' и 'records-1.0.jar'. Как мне сделать так, чтобы названия были "datalogger-core-1.0.jar" и "datalogger-records-1.0.jar" в общем виде? Я знаю, я мог бы изменить имя папки следующим образом:
- datalogger
--- datalogger-core
--- datalogger-entries
Но это не будет рассматриваться как хороший подход, я полагаю. Я также мог бы вручную изменить archivesBaseName
каждого проекта. Но я бы предпочел найти способ сделать это в общем виде, как упоминалось ранее.
3 ответа
subprojects {
tasks.withType(Jar) {
baseName = "datalogger-$project.name"
}
}
В качестве альтернативы, вы можете установить archivesBaseName
Аналогичным образом.
Мы обрабатываем это путем переименования подпроектов, новые имена будут учитываться при создании / именовании ваших jar- файлов: ref: как переименовать проект в gradle вместо использования имени папки?
include 'xxx', 'yyy'
rootProject.children.each { it.name = rootProject.name + it.name }
Для Kotlin: в файле сборки корневого проекта:
subprojects {
tasks.withType<Jar> {
archiveBaseName.set("${rootProject.name}-${project.name}")
}
}