#java #maven #jar #pom.xml #war
#java #maven #jar #pom.xml #Война
Вопрос:
Проекты, с которыми я работаю, состоят из основного модуля и 4 других модулей, каждый со своим pom
- Главная
- B
- C
- D
- Веб
Основной модуль имеет все зависимости, перечисленные в его POM в dependencyManagement, вместе с версией. Остальные включают только библиотеку в зависимости от их POM без номера версии.
Веб-модуль — это тот, который мы экспортируем как WAR, который при создании включает свой POM в META-INF.
Сценарий 1
Есть ли способ сгенерировать файл WAR, который не включает все jar, за исключением тех, которые соответствуют другим модулям?
Я видел некоторые решения, в которых говорится о добавлении определения Maven EAR, но это кропотливый процесс и в любом случае не приводит к уменьшению размера файла проекта.
Сценарий 2
В противном случае, если нет такого способа добиться этого с помощью POM, есть ли способ хотя бы отразить номера версий, включенные в основной модуль, в pom META-INF ВОЙНЫ?
В этом другом сценарии, по крайней мере, я мог бы удалить файлы jar с помощью скрипта, а затем запустить команду maven для копирования зависимостей на целевом компьютере, не тратя дополнительное время на отправку файлов jar, которые в противном случае могли бы быть там.
Ответ №1:
Вы можете предотвратить включение нежелательных jar-файлов в окончательный файл WAR, изменив их область действия на предоставленную
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>version</version>
<scope>provided</scope>
</dependency>