Как разрешить вывод «Не удалось найти совпадение для имени ‘withXml'»?

#java #gradle #groovy #build.gradle #maven-publish

#java #gradle #groovy #build.gradle #maven-опубликовать

Вопрос:

В моем проекте библиотеки Java у меня определена следующая задача Gradle

 apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'jacoco'

...

task createPom() {
    pom {
        project {
            groupId nexusGroupId
            artifactId nexusArtifactId
            version libVersion
            organization {
                name 'Example'
                url 'https://www.example.com'
            }
            withXml { asNode().appendNode('packaging', 'jar') }
        }
    }.writeTo("build/libs/pom.xml")
}
  

Когда я создаю библиотеку, на консоль выводится следующее:

Настроить проект: не удалось найти совпадение для имени ‘withXml’

Я использую оболочку Gradle 4.10.3.

Как я могу разрешить предупреждение?

Ответ №1:

Внутри конструктора для проекта вы можете вызывать только установщики собственной модели проекта POM.

Метод withXml является методом интерфейса MavenPom Gradle и может быть вызван только после создания MavenPom:

 task createPom() {
    pom {
        project {
            groupId 'Foo'
            artifactId 'Bar'
            version '1.0'
        }.withXml { 
            asNode().appendNode('packaging', 'jar')
        }
    }.writeTo("build/libs/pom.xml")
}