#java #gradle #jar #publishing
#java #gradle #jar #публикация
Вопрос:
Я пытаюсь сгенерировать файл .jar моего проекта Gradle, но когда он создается с помощью публикации Maven, он также генерирует файл .pom.
Проблема в том, что у меня есть другой проект, который, когда он реализует эту зависимость, раньше он искал только .jar, а теперь он ищет .pom во всех остальных, что я хочу сделать, так это то, что проект прекращает генерировать .pom с помощью задачи «публикация» или что при его реализации прекращается поиск файлов .pom для работы других.
Вот код для генерации файла .jar в проекте Artifactory A с кодом в проекте B, который использует A и ищет .pom:
publishing {
publications {
mavenJava(MavenPublication) {
groupId = 'com.proteccion.myproject'
artifactId = 'myproject-base'
version = '1.0.1'
from components.java
}
}
repositories {
maven {
name = 'artifactory'
url 'https://url/artifactory/MyProject'
credentials {
username System.getenv("ARTIFACTORY_USER")
password System.getenv("ARTIFACTORY_PWD")
}
}
}
}
repositories {
jcenter()
maven {
url 'https://url/artifactory/MyProject'
credentials {
username System.getenv("ARTIFACTORY_USER")
password System.getenv("ARTIFACTORY_PWD")
}
}
}
Возможно, с помощью Gradle-эквивалента этого сегмента:
publishing {
publications {
mavenJava(MavenPublication) {
groupId = 'com.proteccion.myproject'
artifactId = 'myproject-base'
version = '1.0.1'
from components.java
}
}
Ответ №1:
Наконец-то это сработало для меня:
metadataSources {
artifact()
}
Заставляет искать только файл jar.
Полная конфигурация:
publishing {
publications {
mavenJava(MavenPublication) {
groupId = 'com.company.myproject'
artifactId = 'myproject-base'
version = '1.0.1'
from components.java
}
}
repositories {
maven {
name = 'artifactory'
url 'https://url/artifactory/MyProject'
credentials {
username System.getenv("ARTIFACTORY_USER")
password System.getenv("ARTIFACTORY_PWD")
}
}
}
}
repositories {
jcenter()
maven {
url 'https://url/artifactory/MyProject'
credentials {
username System.getenv("ARTIFACTORY_USER")
password System.getenv("ARTIFACTORY_PWD")
}
metadataSources {
artifact()
}
}
}
Документация (пример 18):
https://docs.gradle.org/current/userguide/dependency_management.html
Ответ №2:
Пример 17. Репозиторий Maven, поддерживающий артефакты без метаданных
repositories {
maven {
url "http://repo.mycompany.com/repo"
metadataSources {
mavenPom()
artifact()
}
}
}