#java #maven
#java #maven
Вопрос:
Кто-нибудь может объяснить разницу между созданием jar для проекта maven с плагинами maven и без них в pom.xml
Я знаю, что эти плагины полезны при создании файлов jar в maven.
maven-jar-plugin builds jar
maven-assembly-plugin - builds jar with dependencies,
maven-shade-plugin - creates a standalone jar with resolved dependencies and resolves the conflicts between resource files that have the same name across the jars.
Однако я могу создать jar, запустив команду «mvn package» без использования какого-либо плагина в моем pom.xml . В чем разница между этим jar и тем, который создан с использованием maven-jar-plugin.
Вот мой pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Demo</groupId>
<artifactId>Demo</artifactId>
<name>test</name>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
</project>
Ответ №1:
Проект maven при использовании ‘packaging= jar’ использует ‘maven-jar-plugin’ под капотом. Это создает jar, предполагая, что вы следуете стандартам maven. Следовательно, ваш jar без настройки.
Вы можете дополнительно настроить сгенерированный jar с помощью «maven-jar-plugin», Куда вы можете включить дополнительные файлы и т. Д. В jar.
‘maven-assembly-plugin’ позволяет создавать tar, zip и другие сжатые артефакты с пользовательскими файлами и папками.
‘maven-shade-plugin’ позволяет вам создавать fat jar, который содержит все необходимые сторонние jar и основной класс. Это делает ваш артефакт легко развертываемым и исполняемым.