Именование нескольких проектов Gradle: как установить свойство (например, baseName) для всех подпроектов?

Я начал использовать Gradle для нескольких проектов. Тем не менее, руководство по Gradle не дает много советов по наилучшей практике именования подпроектов.

У меня есть мультипроект с именем «регистратор данных», который состоит из двух подпроектов «ядро» и «записи»:

- datalogger
--- core
--- entries

Когда я создаю проект, я получаю банки «core-1.0.jar» и «entries-1.0.jar». Как мне сделать так, чтобы имена были «datalogger-core-1.0.jar» и «datalogger-entries-1.0.jar» в общем виде? Я знаю, я мог бы изменить имя папки следующим образом:

- datalogger
--- datalogger-core
--- datalogger-entries

Но я полагаю, что это не будет считаться хорошим подходом. Я также мог бы вручную изменить archivesBaseName каждого проекта. Но я бы предпочел найти способ сделать это общим способом, как упоминалось ранее.


person Martin L.    schedule 03.02.2013    source источник
comment
Spring делает это, называя каждый подпроект spring-xxx. hibernate делает то же самое.   -  person JB Nizet    schedule 03.02.2013
comment
@JBNizet: Спасибо, может быть, это неплохая практика, как я предполагал изначально. На самом деле это может решить все проблемы.   -  person Martin L.    schedule 03.02.2013


Ответы (2)


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

В качестве альтернативы вы можете установить archivesBaseName аналогичным образом.

person Peter Niederwieser    schedule 03.02.2013
comment
Задача публикации maven игнорирует archivesBaseName - person cmcginty; 09.08.2013

Мы справляемся с этим, переименовывая подпроекты, новые имена будут учитываться при создании/именовании ваших банок: ref: как переименовать проект в gradle вместо использования имени папки?

include 'xxx', 'yyy'
rootProject.children.each { it.name = rootProject.name + it.name }
person roomsg    schedule 04.02.2013