У меня есть недавно созданный проект Gradle с 2 подпроектами.Мне нужно опубликовать артефакты в хранилище Nexus.Следовательно, я использовал плагин Gradle Publish внутри подпроектов, как следующий пример кода в build.gradle
файле.
plugins {
id 'maven-publish'
}
group project.group
subprojects {
publishing {
publications {
mavenJava(MavenPublication) {
groupId project.group
artifactId project.name
}
}
repositories {
maven {
url project.url
credentials {
username project.sonatypeUsername
password project.sonatypePassword
}
}
}
}
}
Затем включил подпроект settings.gradle
файл следующим образом.
include 'sub-proj-1'
include 'sub-proj-2'
Здесь, когдапубликация повторяет корневой проект и 2 подпроекта, но публикует все артефакты под sub-proj-2
именем артефакта.
Если я сделаю println project.name
, он напечатает все имена подпроектов и выполнит публикацию в последний подпроект.,
Даже если я попытался afterEvaluate
следующим образом, он опубликовал все артефакты в корневом проекте.
mavenJava(MavenPublication) {
groupId project.group
afterEvaluate {
artifactId project.name
}
}
Я включил тестовый проект с фрагментами кода выше в репозиторий Github.