Sõltuvustega käivitatava JAR-i loomine Maveni abil

Sõltuvustega käivitatava JAR-i loomine Maveni abil
Sõltuvustega käivitatava JAR-i loomine Maveni abil

Maveni projektide pakkimine ühte käivitatavasse JAR-i

Java projektidega töötamisel on sageli vaja oma rakendus hõlpsaks levitamiseks pakkida ühte käivitatavasse JAR-faili. Maven, võimas ehitamise automatiseerimise tööriist, võimaldab arendajatel lisada sellesse ühte väljundisse JAR-i kõik vajalikud sõltuvused.

See artikkel juhendab teid läbi sammude, mis on vajalikud teie Maveni projekti konfigureerimiseks, et lisada kõik sõltuvuse JAR-id teie lõplikku käivitatavasse JAR-i. Järgides neid juhiseid, lihtsustate juurutamisprotsessi ja tagate, et teie rakendus töötab erinevates keskkondades sujuvalt.

Käsk Kirjeldus
<plugin> Määrab Maveni pistikprogrammi, mida ehitamise ajal kasutada. Pluginad võivad täita konkreetseid ülesandeid, nagu koodi kompileerimine või projekti pakkimine.
<groupId> Määrab Maven projekti rühma identifikaatori, tavaliselt vastupidise domeeninime.
<artifactId> Määratleb artefakti identifikaatori, mis on projekti nimi.
<version> Näitab projekti praegust versiooni.
<build> Sisaldab projekti ehituskonfiguratsiooni, sealhulgas pistikprogramme ja ressursse.
<descriptorRef> Viitab kasutatavale Maven Assembly pluginale eelmääratletud deskriptorile, näiteks "jar-with-dependencies".
<mainClass> Määrab JAR-faili käivitamisel käivitatava põhiklassi.
<execution> Määratleb pistikprogrammis täitmisploki, määrates ülesanded, mida tuleb teostada ehituse erinevates etappides.
mvn clean package Käsk projekti puhastamiseks ja JAR-faili pakkimiseks, sealhulgas kõik sõltuvused.
java -jar target/...jar Käsk genereeritud JAR-faili käivitamiseks, määrates JAR-i tee.

Maveniga käivitatava JAR-i loomine ja käitamine

Ülaltoodud skriptid näitavad, kuidas konfigureerida Maveni projekti, et pakkida kõik selle sõltuvused ühte käivitatavasse JAR-faili. Esimene stsenaarium on Maven pom.xml faili, mis sisaldab projekti konfiguratsiooni. Selles failis on <plugin> märgendit kasutatakse Maven Assembly plugina määratlemiseks. See pistikprogramm on ülioluline käivitatava JAR-i loomiseks, mis sisaldab kõiki sõltuvusi. The <descriptorRefs> märgend pistikprogrammi konfiguratsioonis määrab jar-with-dependencies deskriptor, mis tagab, et kõik projekti sõltuvused pakitakse lõplikku JAR-faili. The <mainClass> silt selle sees <manifest> Sektsioon on oluline, kuna see ütleb Mavenile, milline klass sisaldab JAR-i käivitamisel käivitatavat peamist meetodit.

The <execution> Plugina konfiguratsiooni sees olev plokk on koht, kus toiming toimub. See täpsustab, et pistikprogrammi eesmärk single tuleks teostada ajal package ehituse elutsükli etapp. See käivitab sõltuvustega JAR-faili loomise. Teine skript on lihtne käsurea juhend: mvn clean package. See käsk puhastab projekti (eemaldab eelmised ehitusartefaktid), kompileerib lähtekoodi, käivitab testid ja pakib projekti JAR-faili. Lõplik JAR-fail asub asukohas target projekti kataloog ja nimetatud vastavalt artifactId ja version punktis täpsustatud pom.xml.

Sõltuvustega käivitatava JAR-faili loomine Maveni abil

Maveni konfiguratsiooniskript

<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>

Maveni käsu käivitamine JAR-i pakkimiseks

Käsurea juhised

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

Maveni täiustatud tehnikad pakendisõltuvuste jaoks

Lisaks Maveniga käivitatava JAR-i loomise põhikonfiguratsioonile on ka täiendavaid tehnikaid, mis võivad teie ehitusprotsessi täiustada. Üks selline tehnika hõlmab shade plugin asemel assembly sisse panema. Maven Shade'i pistikprogramm pakub uber-JAR-ide (kaasa arvatud sõltuvustega JAR-id) loomiseks täiustatud funktsioone. See võimaldab teil pakette ümber nimetada, et vältida klassitee konflikte, ning pakub paremat dubleerivate klasside ja ressursside käsitlemist. Lisaks pakub see täpset kontrolli selle üle, millised sõltuvused lõplikus JAR-is sisalduvad.

Teine oluline aspekt on JAR-faili suuruse haldamine. Suured JAR-failid võivad olla tülikad ja nende ülekandmine või laadimine aeglane. The maven-shade-plugin võib selles aidata, võimaldades teil välistada mittevajalikud failid ja klassid, vähendades nii lõpliku JAR-i suurust. Samuti saate pistikprogrammi konfigureerida JAR-i minimeerimiseks, eemaldades ebaolulise teabe, näiteks kasutamata klassid või üleliigsed ressursid. Need täpsemad konfiguratsioonid võivad olla eriti kasulikud, kui töötate suurte ja paljude sõltuvustega projektidega.

Levinud küsimused ja lahendused Maven Executable JAR-ide jaoks

  1. Kuidas määrata oma JAR-is põhiklass?
  2. Põhiklassi saate määrata kasutades <mainClass> sildi sees <manifest> Maveni pistikprogrammi konfiguratsiooni jaotises.
  3. Kuidas saan lõplikust JAR-ist välja jätta konkreetsed sõltuvused?
  4. Kasuta excludes märgendi pistikprogrammi konfiguratsioonis, et määrata sõltuvused, mida ei tohiks lõplikus JAR-i lisada.
  5. Mis on uber-JAR?
  6. Uber-JAR on JAR-fail, mis sisaldab mitte ainult teie kompileeritud koodi, vaid ka kõiki selle sõltuvusi.
  7. Kuidas vältida klassitee konflikte oma JAR-is?
  8. The maven-shade-plugin võimaldab konfliktide vältimiseks sõltuvuste piires pakette ümber nimetada.
  9. Kuidas käsitleda dubleerivaid klasse sõltuvustes?
  10. Seadistage maven-shade-plugin dubleerivate klasside ja ressursside haldamiseks, täpsustades, kuidas duplikaate tuleks lõplikus JAR-is käsitleda.
  11. Kas ma saan sõltuvusest kaasata ainult kindlaid faile?
  12. Jah, saate konfigureerida maven-assembly-plugin või maven-shade-plugin et kaasata sõltuvusest ainult konkreetsed failid.
  13. Kuidas pakendatud JAR-i käivitada?
  14. Kasuta java -jar käsk, millele järgneb teie JAR-faili tee.
  15. Kuidas ma saan oma JAR-faili sisu kontrollida?
  16. Võite kasutada jar -tf käsk JAR-faili sisu loetlemiseks.
  17. Mis siis, kui mu JAR-fail on liiga suur?
  18. Kasuta maven-shade-plugin et välistada mittevajalikud failid ja minimeerida JAR-i suurust.

Lõppmõtted Maven Executable JAR-ide kohta

Sõltuvustega käivitatava JAR-i loomine Maveni abil lihtsustab Java-rakenduste juurutamisprotsessi. Õigesti konfigureerides pom.xml faili ja kasutades pistikprogramme, nagu Maven Assembly Plugin või Maven Shade Plugin, saavad arendajad pakkida kõik vajalikud sõltuvused ühte JAR-faili. See lähenemisviis tagab, et rakendus saab sujuvalt töötada erinevates keskkondades, muutes levitamise ja täitmise lihtsaks. Nende sammude järgimine aitab teil oma projekti sõltuvusi tõhusalt hallata ja luua usaldusväärseid käivitatavaid JAR-faile.