|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
Всем привет. Давно пользуюсь gradle и забыл совсем мавен. Есть parent-проект Maven: mParent, и 4 дочерних модуля client, model, api, application client, model, api, - это обычные jar application - приложение, которое подключает в зависимостях model и api Надо собрать client таким образом, чтобы в результирующий jar легли jar'ы с model и api . Как это можно сделать? Какой плагин для сборки использовать и с какими настройками? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 01:08 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
вы хотите чтобы итоговый JAR содержал именно JAR-ы или клaссы из них? если классы то: https://maven.apache.org/plugins/maven-shade-plugin/ если именно JAR-ы, то что вы пытаетесь сделать? OSGi bandle? executable JAR в стиле Spring Boot? JAR c JAR-ми это не то, что Java поддерживает "по умолчанию". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 08:56 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
Чаще всего это либо maven-assembly-plugin ( пример ), либо maven-shade-plugin . ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 08:57 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
это, на самом деле, увлекательная тема :) shade plugin это самый простой путь и самый плохой: 1. внутри JAR-a получается помойка 2. а если у вас там в разных JAR-ax ресурсы с одинаковым именем, что очень не редкость? да, Resource Transformer, но бывают болезненные неожиданности вообщем: такое себе. но из-за простоты пользуются все, и даже некоторые фреймворки прямо рекомендуют: e.g. https://www.dropwizard.io/en/latest/getting-started.html#running-your-application (хороший пример конфигурации там, кстати) есть еще 10+ лет как заброшенный one-jar plugin, который даже работает до сих пор (я как раз пробовал с полгода назад c Java 8) однако, из-за возраста, оно не без нюансов и Multi-Release Jar, очевидно, не поддерживается. вообщем: настоятельно не рекомендую (кстати то, что никак аналогов в экосистеме за более чем 10 лет так и не появилось, как бы намекает, что нафиг оно никому и не надо) как по мне, самый "чистый" путь это "deployable archive": 1. Java поддерживает "Class-Path" в манифесте 2. идея в том, что все библиотеки прописываем в манифест (jar plugin умеет; это, собственно, maven и называет "executable jar"), а потом собраем ZIP c нашим JAR и всеми библиотеками 3. ZIP поддерживаемый maven-артифакт: можно дать ему версию, classifier, можно засунуть его в репозиторий 4. ну а развертывание: достать из репозитория, распаковать и запустить c "java -jar myapp.jar" большое достоинство в том, что это абсолютно стандартный путь: никаких custom classloader-ов, никаких "хитро замешанных" JAR-ов недостатки: гораздо более сложная конфигурация в maven(с участием трех плагинов); и один, дополнительный, шаг при развертывании (распаковать) P.S. простите за оффтоп :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 10:16 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
NullPointer собрать client таким образом, чтобы в результирующий jar легли jar'ы с model и api - если в модуле client есть зависимости (секция dependency) на model и api, то они сами туда подтянутся без дополнительных усилий ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 12:53 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
Kachalov NullPointer собрать client таким образом, чтобы в результирующий jar легли jar'ы с model и api - если в модуле client есть зависимости (секция dependency) на model и api, то они сами туда подтянутся без дополнительных усилий ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 13:52 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
итоговая цель - этот client.jar должен быть отторгаемый. я хочу положить его в нексус и передать другим командам ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 13:53 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
maven-assembly-plugin делает jar с классами, пускай так, но внутри укладывает вообще все зависимости. И спринг, и все на свете. Нужно положить только содержимое этих 2 jar'ников ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 13:58 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
shade plugin работает великолепно: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 14:06 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
NullPointerитоговая цель - этот client.jar должен быть отторгаемый. я хочу положить его в нексус и передать другим командам я не совсем понимаю что вы имеете ввиду под "отторгаемый"? и если вы деплоите артефакт в Nexus, то зачем огород городить? люди же транзитивно все нужные зависимости получат, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 14:26 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
NullPointer итоговая цель - этот client.jar должен быть отторгаемый. я хочу положить его в нексус и передать другим командам Это мягко скажем не правильный путь. Nexus, и вообще maven repository как раз для того, чтобы такие странности не городить. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 17:49 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
mad_nazgul NullPointer итоговая цель - этот client.jar должен быть отторгаемый. я хочу положить его в нексус и передать другим командам Это мягко скажем не правильный путь. Nexus, и вообще maven repository как раз для того, чтобы такие странности не городить. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 19:45 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
NullPointer mad_nazgul пропущено... Это мягко скажем не правильный путь. Nexus, и вообще maven repository как раз для того, чтобы такие странности не городить. <:o) Странные особенности. Я бы всё таки уточнил "нафига?!" Может просто кто-то глупость спорол. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 08:14 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
через докер шас это все делается ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2021, 20:33 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
NullPointer Как это можно сделать? Какой плагин для сборки использовать и с какими настройками? docker image собери их своих джарников ,запушь его на докерхаб и твои коллеги смогут это юзать потом без каких либо проблем ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2021, 20:42 |
|
Сборка модуля в Maven
|
|||
---|---|---|---|
#18+
asv79 через докер шас это все делается Докер перпендекулярен maven-repository. А с учётом Spring-Boot всё равно собирается fat-jar Но создавать артефакт fat-jar это странность. Тут либо ТС что-то не понял, либо кто-то сделал глупость, а все за ним не думая повторили. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2021, 07:36 |
|
|
start [/forum/topic.php?fid=59&msg=40077017&tid=2120422]: |
0ms |
get settings: |
26ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
337ms |
get tp. blocked users: |
2ms |
others: | 367ms |
total: | 811ms |
0 / 0 |