Size: a a a

2021 March 13

VN

Vladislav Navrocky in pro.jvm
сейчас зависимости между библиотеками задаются как api(project(":core")), т.е. как-бы внутренние, если я потом подключу такую библиотеку в другом проекте, то что будет?
источник

KT

Kirill Timofeev in pro.jvm
Vladislav Navrocky
Я почти сделал, но не пойму как указать зависимости одной своей библиотеки от другой, чтобы потом gradle их правильно тянул
вопрос в том, как пропатчить pom.xml у библиотеки A, зависящий от B, перед загрузкой в репу, чтобы в pom.xml была указана зависимость на уже загруженную ранее библиотеку B?
источник

VN

Vladislav Navrocky in pro.jvm
а вот должен быть pom.xml внутри jar? я вот в своих jar его не вижу
источник

VN

Vladislav Navrocky in pro.jvm
или он отдельно идёт
источник

KT

Kirill Timofeev in pro.jvm
тьфу, отдельно, да
источник

VN

Vladislav Navrocky in pro.jvm
я у себя подключю плагин java-library, получается он генерит pom.xml?
источник

VN

Vladislav Navrocky in pro.jvm
хм, сейчас на github выложу
источник

VN

Vladislav Navrocky in pro.jvm
а то так можно до утра описывать что там у меня
источник

KT

Kirill Timofeev in pro.jvm
Vladislav Navrocky
я у себя подключю плагин java-library, получается он генерит pom.xml?
я, честно говоря, конкретно этим плагином не пользовался
когда мне надо было руками генерировал правильный pom.xml и пользовался только maven-publish плагином
источник

VN

Vladislav Navrocky in pro.jvm
да, еще и maven-publish у меня
источник

KT

Kirill Timofeev in pro.jvm
Vladislav Navrocky
да, еще и maven-publish у меня
ну смотри, судя по тому что написано тут: https://docs.gradle.org/current/userguide/java_library_plugin.html#sec:java_library_separation

> cleaner publishing: when used in conjunction with the new maven-publish plugin, Java libraries produce POM files that distinguish exactly between what is required to compile against the library and what is required to use the library at runtime (in other words, don’t mix what is needed to compile the library itself and what is needed to compile against the library).

всё должно работать "само"
источник

KT

Kirill Timofeev in pro.jvm
главное, когда будешь проверять не забывай удалять ~/.m2 кеш твоих библиотек. Иначе будет беда -- будут подцепляться старые, возможно кривые версии библиотек и pom.xml с зависимостями
источник

VN

Vladislav Navrocky in pro.jvm
https://github.com/Sebbia/sebbia-cloudevents вот что я пытаюсь сотворить
источник

KT

Kirill Timofeev in pro.jvm
@vlad_navrocky
когда всё сделаешь у себя вызывай
./gradlew publishToMavenLocal
и смотри глазами на получившиеся файлы в кэше
источник

VN

Vladislav Navrocky in pro.jvm
сейчас попробую запушить в репозиторий, посмотрю что там в pom.xml получилось
источник

VN

Vladislav Navrocky in pro.jvm
а есть даже отдельная таска для генерации pom )
источник

VN

Vladislav Navrocky in pro.jvm
мда, в pom полная фигня конечно же
источник

KT

Kirill Timofeev in pro.jvm
Vladislav Navrocky
мда, в pom полная фигня конечно же
маленький совет: я посмотрел, у тебя куча кода в файлах, хоть и закомментированного. удали нафиг всё и начни с задачи "получить готовую к публикации библиотеку с одной стандартной зависимостью (например на gson какой-нибудь)". и дальше итеративно добавляй сложности.

это единственный адекватный способ писать грэдл скрипты :(
источник

VN

Vladislav Navrocky in pro.jvm
так там и так ничего нет, я с нуля практически это и ваяю
источник

KT

Kirill Timofeev in pro.jvm
@vlad_navrocky
ещё можно сделать вот так: https://github.com/search?q=id+%27java-library%27+id+%27maven-publish%27&type=Code
и поискать чужие решения :)
источник