W jaki sposób wtyczka programowo konfiguruje publikowanie Maven-Publishing i umożliwia modyfikowanie go przez build.gradle
Mam ustawienia projektu w wtyczce, nazywanej rodzicem, która próbuje zastosować wtyczkę maven-publication, a następnie programowo skonfigurować rozszerzenie publikowania. Wydaje się to działać, ale gdy zastosuję tę wtyczkę w skrypcie build.gradle, nie mogę skonfigurować rozszerzenia publikowania, aby ustawić publikacje specyficzne dla projektu.
Otrzymuję błąd:
Cannot configure the 'publishing' extension after it has been accessed.
Moim zamiarem było ustawienie repozytorium publikacji w wtyczce nadrzędnej, a następnie niech każdy skrypt build.gradle doda odpowiednie publikacje.
Czy istnieje sposób, aby to zrobić?
Obecnie ParentPlugin.groovy wygląda tak:
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')
}
}
}
}
}
Mój klient build.gradle kończy się niepowodzeniem, gdy próbuje skonfigurować rozszerzenie publikowania.
apply plugin: 'parent'
publishing {
publications {
mavenJava(MavenPublication) {
groupId 'agroup'
artifactId 'anartifactid'
version '1.0.0-SNAPSHOT'
from components.java
}
}
}
czy to możliwe? Czy jest inny sposób, w jaki powinienem się do tego zbliżyć?