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

В моем проекте библиотеки 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")
}

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

Configure project : Could not find match for name 'withXml'

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
176
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Внутри билдера для проекта можно вызывать только сеттеры нативного Модель проекта ПОМ.

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

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

Другие вопросы по теме