Vytvorenie spustiteľného súboru JAR so závislosťami pomocou Maven

Maven

Balenie projektov Maven do jedného spustiteľného súboru JAR

Pri práci s projektmi Java je často potrebné zabaliť vašu aplikáciu do jedného spustiteľného súboru JAR pre jednoduchú distribúciu. Maven, výkonný nástroj na automatizáciu zostavovania, umožňuje vývojárom zahrnúť všetky potrebné závislosti do tohto JAR s jedným výstupom.

Tento článok vás prevedie krokmi potrebnými na konfiguráciu vášho projektu Maven tak, aby zahŕňal všetky závislé JAR do vášho konečného spustiteľného JAR. Dodržiavaním týchto pokynov zjednodušíte proces nasadenia a zabezpečíte, aby vaša aplikácia fungovala hladko v rôznych prostrediach.

Príkaz Popis
<plugin> Definuje doplnok Maven, ktorý sa má použiť počas procesu zostavovania. Pluginy môžu vykonávať špecifické úlohy, ako je kompilácia kódu alebo balenie projektu.
<groupId> Určuje identifikátor skupiny pre projekt Maven, zvyčajne názov reverznej domény.
<artifactId> Definuje identifikátor artefaktu, ktorým je názov projektu.
<version> Označuje aktuálnu verziu projektu.
<build> Obsahuje konfiguráciu zostavy pre projekt vrátane doplnkov a zdrojov.
<descriptorRef> Odkazuje na preddefinovaný deskriptor pre Maven Assembly Plugin, ktorý sa má použiť, ako napríklad „jar-with-dependencies“.
<mainClass> Určuje hlavnú triedu, ktorá sa má spustiť pri spustení súboru JAR.
<execution> Definuje blok vykonávania v rámci doplnku a špecifikuje úlohy, ktoré sa majú vykonať v rôznych fázach zostavovania.
mvn clean package Príkaz na vyčistenie projektu a jeho zabalenie do súboru JAR vrátane všetkých závislostí.
java -jar target/...jar Príkaz na spustenie vygenerovaného súboru JAR s uvedením cesty k súboru JAR.

Vytvorenie a spustenie spustiteľného súboru JAR pomocou Maven

Skripty uvedené vyššie ukazujú, ako nakonfigurovať projekt Maven tak, aby zbalil všetky jeho závislosti do jedného spustiteľného súboru JAR. Prvý skript je Maven súbor, ktorý obsahuje konfiguráciu projektu. V rámci tohto súboru, tag sa používa na definovanie modulu Maven Assembly Plugin. Tento doplnok je rozhodujúci pre vytvorenie spustiteľného JAR, ktorý obsahuje všetky závislosti. The tag v konfigurácii doplnku určuje použitie jar-with-dependencies deskriptor, ktorý zaisťuje, že všetky závislosti projektu sú zabalené do konečného súboru JAR. The tag vo vnútri sekcia je nevyhnutná, pretože hovorí Mavenovi, ktorá trieda obsahuje hlavnú metódu, ktorá sa má spustiť pri spustení JAR.

The blok v konfigurácii doplnku je miesto, kde sa akcia deje. Špecifikuje, že cieľom doplnku by mala byť vykonaná počas fázy životného cyklu stavby. Toto spúšťa vytvorenie súboru JAR so závislosťami. Druhý skript je jednoduchá inštrukcia príkazového riadku: mvn clean package. Tento príkaz vyčistí projekt (odstráni predchádzajúce artefakty zostavy), skompiluje zdrojový kód, spustí testy a zabalí projekt do súboru JAR. Konečný súbor JAR sa bude nachádzať v adresár projektu a pomenovaný podľa a špecifikované v pom.xml.

Vytvorenie spustiteľného súboru JAR so závislosťami pomocou Maven

Maven konfiguračný skript

<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>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <mainClass>com.example.MainClass</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Spustenie príkazu Maven na zabalenie JAR

Pokyny pre príkazový riadok

mvn clean package
# This command will compile the code, run the tests, and create the JAR file
# The JAR file will include all dependencies specified in the pom.xml
# It will be located in the target directory of the project
# The final JAR file will be named my-app-1.0-SNAPSHOT-jar-with-dependencies.jar

# To run the JAR file, use the following command:
java -jar target/my-app-1.0-SNAPSHOT-jar-with-dependencies.jar
# Ensure that the mainClass specified in the pom.xml is correct
# This will start your application with all dependencies included

Pokročilé techniky Maven pre závislosti na obaloch

Okrem základnej konfigurácie na vytvorenie spustiteľného JAR pomocou Maven existujú ďalšie techniky, ktoré môžu zlepšiť váš proces zostavovania. Jedna z takýchto techník zahŕňa použitie plugin namiesto zapojiť. Maven Shade Plugin ponúka pokročilejšie funkcie na vytváranie uber-JAR (JAR so závislosťami v cene). Umožňuje vám premenovať balíky, aby ste sa vyhli konfliktom tried a poskytuje lepšie zaobchádzanie s duplicitnými triedami a prostriedkami. Okrem toho ponúka jemnú kontrolu nad tým, ktoré závislosti sú zahrnuté v konečnom JAR.

Ďalším dôležitým aspektom je spravovanie veľkosti vášho súboru JAR. Veľké súbory JAR môžu byť ťažkopádne a pomalé na prenos alebo načítanie. The môže s tým pomôcť tým, že vám umožní vylúčiť nepotrebné súbory a triedy, čím sa zníži veľkosť konečného JAR. Môžete tiež nakonfigurovať doplnok tak, aby minimalizoval JAR odstránením nepodstatných informácií, ako sú nepoužívané triedy alebo nadbytočné zdroje. Tieto pokročilé konfigurácie môžu byť užitočné najmä pri práci na veľkých projektoch s mnohými závislosťami.

  1. Ako určím hlavnú triedu v mojom JAR?
  2. Hlavnú triedu môžete určiť pomocou tag v rámci časti konfigurácie zásuvného modulu Maven.
  3. Ako môžem vylúčiť špecifické závislosti z konečného JAR?
  4. Použi tag v konfigurácii doplnku na špecifikovanie závislostí, ktoré by nemali byť zahrnuté vo finálnom JAR.
  5. Čo je to uber-JAR?
  6. Uber-JAR je súbor JAR, ktorý obsahuje nielen váš skompilovaný kód, ale aj všetky jeho závislosti.
  7. Ako sa môžem vyhnúť konfliktom tried v mojom JAR?
  8. The umožňuje premenovať balíčky v rámci závislostí, aby sa predišlo konfliktom.
  9. Ako zvládnem duplicitné triedy v závislostiach?
  10. Nakonfigurujte na správu duplicitných tried a zdrojov špecifikovaním toho, ako by sa malo s duplikátmi zaobchádzať v konečnom JAR.
  11. Môžem zahrnúť iba konkrétne súbory zo závislosti?
  12. Áno, môžete nakonfigurovať alebo zahrnúť iba konkrétne súbory zo závislosti.
  13. Ako spustím zabalený JAR?
  14. Použi za ktorým nasleduje cesta k vášmu súboru JAR.
  15. Ako môžem overiť obsah môjho súboru JAR?
  16. Môžete použiť príkaz na výpis obsahu súboru JAR.
  17. Čo ak je môj súbor JAR príliš veľký?
  18. Použi vylúčiť nepotrebné súbory a minimalizovať veľkosť JAR.

Záverečné myšlienky o spustiteľných súboroch JAR Maven

Vytvorenie spustiteľného JAR so závislosťami pomocou Maven zjednodušuje proces nasadenia pre Java aplikácie. Správnou konfiguráciou a pomocou doplnkov ako Maven Assembly Plugin alebo Maven Shade Plugin môžu vývojári zabaliť všetky potrebné závislosti do jedného súboru JAR. Tento prístup zaisťuje, že aplikácia môže bezproblémovo bežať v rôznych prostrediach, vďaka čomu je distribúcia a spúšťanie jednoduché. Dodržiavanie týchto krokov vám pomôže efektívne spravovať závislosti vášho projektu a vytvárať spoľahlivé, spustiteľné súbory JAR.