#gradle #artifactory
Вопрос:
После обновления до Gradle 7 у меня появилось много предупреждений, таких как:
Cannot publish Ivy descriptor if ivyDescriptor not set in task ':myProject:artifactoryPublish' and task 'uploadArchives' does not exist.
Cannot publish pom for project ':myProject' since it does not contain the Maven plugin install task and task ':myProject:artifactoryPublish' does not specify a custom pom path.
Задача artifactoryPublish работает нормально.
Мой сценарий Gradle:
buildscript {
repositories{
maven {
url = '...'
credentials {
username '...'
password '...'
}
metadataSources {
mavenPom()
artifact()
}
}
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.24.12"
}
}
apply plugin: 'java'
apply plugin: 'maven-publish'
apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPlugin
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
suppressAllPomMetadataWarnings()
}
}
}
group = '...'
artifactory {
contextUrl = '...'
publish {
repository {
repoKey = '...'
username = '...'
password = '...'
}
defaults {
publishConfigs('archives')
publishIvy = false
publications("mavenJava")
}
}
}
Как отключить эти предупреждения?
Ответ №1:
Похоже, вы смешали старый метод настройки публикации Gradle и новый метод публикации Gradle.
Вы применили плагин maven-publish, который позволяет создавать публикации. В artifactory.default
, вы добавили публикацию «Мавенджава», как и ожидалось.
Однако конфигурация публикации архивов не существует в вашем файле build.gradle. В основном конфигурации публикации создаются устаревшим плагином maven. Настроенная mavenJava
публикация выполняет то же самое archives
, что и конфигурация публикации, и поэтому все файлы JAR публикуются должным образом.
Чтобы удалить предупреждающие сообщения, которые вы видите, удалите publishConfigs('archives')
предложение from artifactory.default:
artifactory {
publish {
defaults {
publishConfigs('archives') // <-- Remove this line
publishIvy = false
publications("mavenJava")
}
}
}
Подробнее: