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ć?

questionAnswers(3)

yourAnswerToTheQuestion