Как опубликовать библиотеку при использовании пользовательской спецификацииJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как опубликовать библиотеку при использовании пользовательской спецификации

Сообщение Anonymous »

У меня возникли проблемы с поиском правильного способа публикации библиотеки Java в артефактах, когда в проекте используется пользовательская спецификация.
Этот проект имеет многомодульную структуру —
* my-root
* my-bom
* build.gradle
* my-library
* src
* build.gradle
* my-app
* src
* build.gradle
* settings.gradle

my-bom/build.gradle имеет
plugins {
id 'java-platform'
}

javaPlatform {
allowDependencies()
}

dependencies {
api platform('org.springframework.cloud:spring-cloud-dependencies:2023.0.3')
api platform("org.springframework.boot:spring-boot-dependencies:3.3.4")
api platform('org.junit:junit-bom:5.11.0')

constraints {
api 'net.logstash.logback:logstash-logback-encoder:8.0'
api "org.mockito:mockito-junit-jupiter:5.13.0"
api 'commons-io:commons-io:2.17.0'
...
...
}
}

Этот проект включен в my-library/build.gradle
plugins {
id 'java-library'
id 'com.jfrog.artifactory'
id 'maven-publish'
}

dependencies {
implementation platform(project(':my-bom'))
implementation "org.springframework.boot:spring-boot-starter-validation"
implementation "org.springframework.boot:spring-boot-starter-webflux"
...
...
}

Я опубликовал jar с помощью команды ./gradlew :my-library:assemble :my-library:publish
Это моя конфигурация артефакта -
artifactory {
contextUrl = ...
publish {
repository {
maven = true
repoKey = ...
username = ...
password = ...

}
defaults {
publications('mavenJava')

}

}
resolve {
repository {
maven = true
repoKey = ...
username = ...
password = ...

}
}
}
publishing {
repositories {
maven {
credentials {
username ...
password ...
}
url ...
}
}
publications {
library(MavenPublication) {
from components.java
}
}
}

Я пытался разрешить опубликованный jar в моем приложении с помощью реализации (группа: 'my-group', имя: 'my-library', версия: ' +') но получаю ошибку -
> Could not resolve my-group:my-library:v0.0.1.
> Could not parse POM https://****.jfrog.io/****/my-library/v0.0.1/my-library-v0.0.1.pom
> Could not find my-root:my-bom:unspecified

Когда я скачал помпон, я вижу
4.0.0
my-group
my-library
v0.0.1



my-root
my-bom
unspecified
pom
import





org.springframework.boot
spring-boot-starter-validation
runtime


org.springframework.boot
spring-boot-starter-webflux
runtime

...
...


Я попробовал поискать в Интернете, но ни один из них не имел такой же настройки, как у меня. Я попробовал изменить их решения, но не смог найти правильный способ публикации jar.
Пожалуйста, помогите правильно опубликовать мою библиотеку.
gradle = 8.5,
springboot = 3.3.4,
jfrog's build-info-extractor-gradle = 4+


Подробнее здесь: https://stackoverflow.com/questions/790 ... custom-bom
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»