| 
 | 
| 
 
Сборка модуля в 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=40076857&tid=2120422]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    106ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    52ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 246ms | 
| total: | 447ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...