В Java Как создать файл архива .jar/.tar.gz/.zip с помощью плагина maven-assembly? Учебное пособие по Maven и корпоративным проектам
Опубликовано: 2020-10-07
Maven
просто великолепен. С таким количеством плагинов это один из Best Java Build tool
на рынке прямо сейчас.
Я использую его во всех своих проектах и сильно от него завишу. Возможности сборки безграничны. Некоторое время назад я написал разные руководства по многим другим плагинам maven, и в этом мы рассмотрим maven-assembly-plugin
.
Плагин сборки Maven полагается на предоставленные дескрипторы сборки, чтобы определять его выполнение.
Вот список предыдущего учебника по плагинам maven:
-
maven-war-plugin
— создать файл проекта .war. -
maven-resources-plugin
,maven-dependency-plugin
иmaven-jar-plugin
— построить проект Java, включая все зависимости? -
maven-shade-plugin
— создать исполняемый файл .jar на основе Java + Spring со всеми необходимыми зависимостями, свойствами и ресурсами.
У вас есть какие-либо из приведенных ниже вопросов? Этот урок тоже подойдет.
- Как создать файл jar с помощью Maven?
- Как использовать maven для создания файла jar с зависимостями
- Используйте pom.xml для создания jar
- Лучший способ создать банку maven без зависимостей
- Как создать банку maven, включая зависимости
Давайте начнем с maven-assembly-plugin
Шаг 1
Создайте новый проект Maven в среде Eclipse. Назовите его CrunchifyMavenBuildPlugins
. Если у вас есть динамический веб-проект или проект Java, то с помощью этих шагов вы можете преобразовать проект в проект maven. После преобразования проекта в Maven вы должны увидеть сгенерированный файл pom.xml
, который нам нужен для этого руководства.
Вот структура моего проекта. Я использую свой существующий проект, в котором всего 8 java files
в пакете /src/com/crunchify/tutorials
.

Шаг 2
Откройте файл pom.xml вашего проекта, добавьте новый <plugin></plugin>
, в основном line 28 to 38
.
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
< 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 > CrunchifyMavenBuildPlugins < / groupId > < artifactId > CrunchifyMavenBuildPlugins < / artifactId > < version > 0.0.1 - SNAPSHOT < / version > < name > CrunchifyMavenBuildPlugins < / name > < properties > < project . build . sourceEncoding > UTF - 8 < / project . build . sourceEncoding > < / properties > < dependencies > < dependency > < groupId > wsdl4j < / groupId > < artifactId > wsdl4j < / artifactId > < version > 1.6.3 < / version > < / dependency > < dependency > < groupId > com . google . zxing < / groupId > < artifactId > core < / artifactId > < version > 2.0 < / version > < / dependency > < / dependencies > < build > < plugins > < plugin > < artifactId > maven - assembly - plugin < / artifactId > < version > 2.5.3 < / version > < configuration > < descriptors > < descriptor > src / com / crunchify / assembly / crunchify . xml < / descriptor > < / descriptors > < tarLongFileMode > posix < / tarLongFileMode > < / configuration > < / plugin > < / plugins > < / build > < / project > |
Шаг 3
Создайте новый файл crunchify.xml
и поместите его в пакет /src/com/crunchify/assembly
. Мы уже ссылались на этот файл в приведенном выше файле pom.xml
.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
< assembly xmlns = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd" > < id > bundle < / id > < formats > < format > tar . gz < / format > < format > zip < / format > < format > tar < / format > < / formats > < includeBaseDirectory > false < / includeBaseDirectory > < fileSets > < fileSet > < directory > src / com / crunchify / tutorial < / directory > < outputDirectory > crunchify - output < / outputDirectory > < / fileSet > < / fileSets > < / assembly > |
Здесь мы экспортируем наш проект в 3 разных <formats>
- tar.gz
- молния
- смола
Тег <directory>
показывает это — получите все в пакете src/com/crunchify/tutorial
и поместите его в crunchify-output
, которая указана в <outputDirectory>
.
Если вы хотите включить все, например содержимое папки /src
или /resource
, вы можете использовать следующие варианты:
- <каталог>
src/com/crunchify/tutorial
</каталог> - <directory>
src
</directory> : все в папке src - <каталог>
resources
</каталог> : все в папке ресурсов - <каталог>
/
</каталог> : все
Шаг-4
Щелкните правой кнопкой мыши проект CrunchifyMavenBuildPlugins => Run As
от имени => Сборка Maven build
.

- Обеспечьте цели как
clean assembly:assembly
- Нажмите
Apply
- Нажмите
Run

Шаг-5
Вы должны увидеть сообщение BUILD SUCCESS
на консоли.
1 2 3 4 5 6 7 8 9 |
[ INFO ] --- maven - assembly - plugin : 2.5.3 : assembly ( default - cli ) @ CrunchifyMavenBuildPlugins --- [ INFO ] Reading assembly descriptor : src / com / crunchify / assembly / crunchify . xml [ INFO ] Building tar : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . tar . gz [ INFO ] Building zip : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . zip [ INFO ] Building tar : / Users / crunchifyjavatutorials / CrunchifyMavenBuildPlugins / target / CrunchifyMavenBuildPlugins - 0.0.1 - SNAPSHOT - bundle . tar [ INFO ] ------------------------------------------------------------------------ [ INFO ] BUILD SUCCESS [ INFO ] ------------------------------------------------------------------------ [ INFO ] Total time : 1.719 s |
Шаг-6
NOTE:
вам не нужно выполнять этот шаг.

Вы получаете эту ошибку? Если вы видите это сообщение об ошибке при сборке сборки, вам необходимо добавить строку ниже в файл pom.xml.
1 |
< tarLongFileMode > posix < / tarLongFileMode > |
Я получил вышеуказанную ошибку с моей 1-й попытки. Итак, уже добавлен tarLongFileMode
в файл pom.xml выше.
Шаг-7
how to verify
? Перейдите в target
папку вашего проекта и выполните приведенную ниже команду, чтобы просмотреть .tag.gz file contents
.
bash-3.2$ tar zxvf CrunchifyMavenBuildPlugins-0.0.1-SNAPSHOT-bundle.tar.gz

Дайте мне знать, если у вас есть какие-либо вопросы и вы столкнетесь с какой-либо проблемой при запуске этого.