W Javie Jak utworzyć archiwum .jar / .tar.gz / .zip za pomocą wtyczki maven-assembly-plugin? Samouczek dotyczący projektów Maven i Enterprise
Opublikowany: 2020-10-07
Maven
jest niesamowity. Przy tak wielu wtyczkach jest to obecnie jedno z Best Java Build tool
na rynku.
Używam go we wszystkich moich projektach i mocno od niego zależy. Możliwości budowania są nieograniczone. Jakiś czas temu napisałem różne samouczki na temat wielu innych wtyczek maven, a w tym omówimy maven-assembly-plugin
.
Maven Assembly Plugin opiera się na dostarczonych deskryptorach zestawów, aby dyktować jego wykonanie.
Oto lista poprzednich samouczków wtyczek maven:
-
maven-war-plugin
– Utwórz plik .war projektu. -
maven-resources-plugin
,maven-dependency-plugin
&maven-jar-plugin
– Zbuduj projekt Java zawierający wszystkie zależności? -
maven-shade-plugin
– Utwórz plik wykonywalny Java+Spring .jar ze wszystkimi wymaganymi zależnościami, właściwościami i zasobami.
Czy masz któreś z poniższych pytań? Ten samouczek też na to zadziała.
- Jak stworzyć plik jar za pomocą Mavena?
- Jak używać mavena do tworzenia pliku jar z zależnościami?
- Użyj pom.xml, aby utworzyć słoik
- Najlepszy sposób na stworzenie słoika maven bez zależności
- Jak stworzyć maven jar, w tym zależności
Zacznijmy od maven-assembly-plugin
Krok 1
Utwórz projekt New Maven w środowisku Eclipse. Nazwij go jako CrunchifyMavenBuildPlugins
. Jeśli masz już dynamiczny projekt internetowy lub projekt Java, wykonując te czynności, możesz przekonwertować projekt na projekt maven. Po przekonwertowaniu projektu do Mavena powinieneś zobaczyć wygenerowany plik pom.xml
, którego potrzebujemy do tego tutoriala.
Oto moja struktura projektu. Używam mojego istniejącego projektu, który ma łącznie 8 java files
w pakiecie /src/com/crunchify/tutorials
.

Krok 2
Otwórz plik pom.xml swojego projektu, dodaj nową <plugin></plugin>
głównie 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 > |
Krok 3
Utwórz nowy plik crunchify.xml
i umieść go w pakiecie /src/com/crunchify/assembly
. Wspominaliśmy ten plik już w powyższym pliku 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 > |
Tutaj eksportujemy nasz projekt do 3 różnych <formats>

- tar.gz
- zamek błyskawiczny
- smoła
Znacznik <directory>
pokazuje, że – pobierz wszystko do pakietu src/com/crunchify/tutorial
i umieść to w crunchify-output
, który jest wymieniony w tagu <outputDirectory>
.
Jeśli chcesz uwzględnić wszystko, jak zawartość folderu /src
lub /resource
, możesz użyć poniższych różnych odmian:
- <katalog>
src/com/crunchify/tutorial
</katalog> - <katalog>
src
</katalog> : wszystko w folderze src - <katalog>
resources
</katalog> : wszystko w folderze zasobów - <katalog>
/
</katalog> : wszystko
Krok 4
Kliknij prawym przyciskiem myszy projekt CrunchifyMavenBuildPlugins => Run As
=> Kompilacja Maven build

- Zapewnij cele jako
clean assembly:assembly
- Kliknij
Apply
- Kliknij
Run

Krok-5
Powinieneś zobaczyć komunikat BUILD SUCCESS
na konsoli.
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 |
Krok-6
NOTE:
nie musisz wykonywać tego kroku.

Czy otrzymujesz ten błąd? Jeśli zobaczysz ten komunikat o błędzie podczas budowania zespołu, musisz dodać poniższy wiersz do pliku pom.xml.
1 |
< tarLongFileMode > posix < / tarLongFileMode > |
Dostałem powyżej błędu podczas mojej pierwszej próby. Więc już dodano tarLongFileMode
do powyższego pliku pom.xml.
Krok-7
Teraz how to verify
? Przejdź do folderu target
projektu i uruchom poniższe polecenie, aby zobaczyć .tag.gz file contents
.
bash-3.2$ tar zxvf CrunchifyMavenBuildPlugins-0.0.1-SNAPSHOT-bundle.tar.gz

Daj mi znać, jeśli masz jakieś pytania i napotkasz jakiekolwiek problemy z prowadzeniem tego.