У меня есть общие настройки проекта в плагине, называемом родительским, который пытается применить плагин maven-publish и затем программно настроить расширение публикации. Это похоже на работу, но когда я применяю этот плагин в файле build.gradle script, я не могу настроить расширение публикации, чтобы устанавливать публикации, связанные с проектом.
Я получаю сообщение об ошибке:
Cannot configure the 'publishing' extension after it has been accessed.
Мое намерение состояло в том, чтобы создать репозиторий публикации в родительском плагине, а затем позволить каждому build.gradle script добавлять соответствующие публикации.
Есть ли способ сделать это?
В настоящее время ParentPlugin.groovy выглядит так:
def void apply(Project project) {
project.getProject().apply plugin: 'maven-publish'
def publishingExtension = project.extensions.findByName('publishing')
publishingExtension.with {
repositories {
maven {
mavenLocal()
credentials {
username getPropertyWithDefault(project.getProject(), 'publishUserName', 'dummy')
password getPropertyWithDefault(project.getProject(), 'publishPassword', 'dummy')
}
}
}
}
}
Мой клиент build.gradle терпит неудачу, когда он пытается настроить расширение публикации.
apply plugin: 'parent'
publishing {
publications {
mavenJava(MavenPublication) {
groupId 'agroup'
artifactId 'anartifactid'
version '1.0.0-SNAPSHOT'
from components.java
}
}
}
Возможно ли это? Есть ли другой способ, которым я должен приближаться к этому?