Suoritettavan JAR:n luominen riippuvuuksilla Mavenin avulla

Suoritettavan JAR:n luominen riippuvuuksilla Mavenin avulla
Suoritettavan JAR:n luominen riippuvuuksilla Mavenin avulla

Maven-projektien pakkaaminen yhteen suoritettavaan JAR:iin

Java-projektien kanssa työskenneltäessä on usein tarpeen pakata sovellus yhdeksi suoritettavaksi JAR-tiedostoksi levittämisen helpottamiseksi. Maven, tehokas rakennusautomaatiotyökalu, antaa kehittäjille mahdollisuuden sisällyttää kaikki tarvittavat riippuvuudet tähän yhteen lähtö-JAR:iin.

Tämä artikkeli opastaa sinua vaiheissa, joita tarvitaan Maven-projektin määrittämiseen sisällyttämään kaikki riippuvuus-JAR-tiedostot lopulliseen suoritettavaan JAR-tiedostoosi. Näitä ohjeita noudattamalla yksinkertaistat käyttöönottoprosessia ja varmistat, että sovelluksesi toimii sujuvasti eri ympäristöissä.

Komento Kuvaus
<plugin> Määrittää Maven-laajennuksen, jota käytetään rakennusprosessin aikana. Pluginit voivat suorittaa tiettyjä tehtäviä, kuten koodin kääntämistä tai projektin pakkaamista.
<groupId> Määrittää Maven-projektin ryhmätunnisteen, yleensä käänteisen toimialueen nimen.
<artifactId> Määrittää artefaktin tunnisteen, joka on projektin nimi.
<version> Osoittaa projektin nykyisen version.
<build> Sisältää projektin koontikokoonpanon, mukaan lukien laajennukset ja resurssit.
<descriptorRef> Viittaa ennalta määritettyyn kuvaajaan Maven Assembly Pluginille käytettäväksi, kuten "jar-with-dependencies".
<mainClass> Määrittää pääluokan, joka suoritetaan, kun JAR-tiedosto suoritetaan.
<execution> Määrittää suorituslohkon laajennuksen sisällä ja määrittää eri rakennusvaiheissa suoritettavat tehtävät.
mvn clean package Komento puhdistaa projekti ja pakata se JAR-tiedostoon, mukaan lukien kaikki riippuvuudet.
java -jar target/...jar Komento suorittaa luotu JAR-tiedosto ja määrittää polun JAR-tiedostoon.

Suoritettavan JAR:n luominen ja suorittaminen Mavenin kanssa

Yllä toimitetut komentosarjat osoittavat, kuinka Maven-projekti määritetään pakamaan kaikki sen riippuvuudet yhdeksi suoritettavaksi JAR-tiedostoksi. Ensimmäinen käsikirjoitus on Maven pom.xml tiedosto, joka sisältää projektin asetukset. Tässä tiedostossa on <plugin> -tunnistetta käytetään määrittelemään Maven Assembly Plugin. Tämä laajennus on ratkaisevan tärkeä suoritettavan JAR:n luomisessa, joka sisältää kaikki riippuvuudet. The <descriptorRefs> -tunniste laajennuksen kokoonpanossa määrittää jar-with-dependencies kuvaaja, joka varmistaa, että kaikki projektin riippuvuudet pakataan lopulliseen JAR-tiedostoon. The <mainClass> tagin sisällä <manifest> -osio on olennainen, koska se kertoo Mavenille, mikä luokka sisältää päämenetelmän, joka suoritetaan, kun JAR suoritetaan.

The <execution> lohko laajennuksen kokoonpanossa on paikka, jossa toiminto tapahtuu. Se määrittää, että laajennuksen tavoite single tulee suorittaa aikana package rakennuksen elinkaaren vaihe. Tämä käynnistää riippuvuuksia sisältävän JAR-tiedoston luomisen. Toinen komentosarja on yksinkertainen komentoriviohje: mvn clean package. Tämä komento puhdistaa projektin (poistaa aiemmat koontiartefaktit), kokoaa lähdekoodin, suorittaa testejä ja pakkaa projektin JAR-tiedostoon. Lopullinen JAR-tiedosto sijaitsee osoitteessa target projektin hakemistosta ja nimetty artifactId ja version määritelty kohdassa pom.xml.

Suoritettavan JAR-tiedoston luominen riippuvuuksilla Mavenin avulla

Maven Configuration Script

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

Maven-komennon suorittaminen JAR:n pakkaamiseksi

Komentoriviohjeet

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

Kehittyneet Maven-tekniikat pakkausriippuvuuksiin

Peruskokoonpanon lisäksi suoritettavan JAR:n luomiseksi Mavenilla on muita tekniikoita, jotka voivat parantaa rakennusprosessia. Yksi tällainen tekniikka sisältää shade plugin sijasta assembly kytkeä. Maven Shade Plugin tarjoaa edistyneempiä ominaisuuksia uber-JAR:ien luomiseen (JAR:t riippuvuuksineen). Sen avulla voit nimetä paketteja uudelleen luokkapolun ristiriitojen välttämiseksi ja parantaa päällekkäisten luokkien ja resurssien käsittelyä. Lisäksi se tarjoaa hienorakeisen hallinnan siihen, mitkä riippuvuudet sisällytetään lopulliseen JAR:iin.

Toinen tärkeä näkökohta on JAR-tiedoston koon hallinta. Suuret JAR-tiedostot voivat olla hankalia ja hidasta siirtää tai ladata. The maven-shade-plugin voi auttaa tässä antamalla sinun sulkea pois tarpeettomat tiedostot ja luokat, mikä pienentää lopullisen JAR:n kokoa. Voit myös määrittää laajennuksen minimoimaan JAR:n poistamalla ei-välttämättömät tiedot, kuten käyttämättömät luokat tai ylimääräiset resurssit. Nämä edistyneet kokoonpanot voivat olla erityisen hyödyllisiä, kun työskentelet suurissa projekteissa, joissa on useita riippuvuuksia.

Yleisiä kysymyksiä ja ratkaisuja Maven Executable JAR:ille

  1. Kuinka määritän pääluokan JAR:issani?
  2. Voit määrittää pääluokan käyttämällä <mainClass> -tunnisteen sisällä <manifest> Maven-laajennuksen kokoonpanon osa.
  3. Kuinka voin sulkea pois tietyt riippuvuudet lopullisesta JAR:sta?
  4. Käytä excludes -tunniste laajennuksen määrityksissä määrittääksesi riippuvuudet, joita ei pitäisi sisällyttää lopulliseen JAR:iin.
  5. Mikä on uber-JAR?
  6. Uber-JAR on JAR-tiedosto, joka sisältää käännetyn koodisi lisäksi myös kaikki sen riippuvuudet.
  7. Kuinka voin välttää luokkapolun ristiriidat JARissani?
  8. The maven-shade-plugin voit nimetä uudelleen riippuvuuksien sisällä olevia paketteja ristiriitojen välttämiseksi.
  9. Kuinka käsittelen päällekkäisiä luokkia riippuvuuksissa?
  10. Määritä maven-shade-plugin hallita päällekkäisiä luokkia ja resursseja määrittämällä, kuinka kaksoiskappaleita tulee käsitellä lopullisessa JAR:ssa.
  11. Voinko sisällyttää vain tiettyjä tiedostoja riippuvuudesta?
  12. Kyllä, voit määrittää maven-assembly-plugin tai maven-shade-plugin sisällyttääksesi vain tietyt tiedostot riippuvuudesta.
  13. Kuinka käytän pakattua JAR:ia?
  14. Käytä java -jar komento ja sen jälkeen polku JAR-tiedostoosi.
  15. Kuinka voin tarkistaa JAR-tiedostoni sisällön?
  16. Voit käyttää jar -tf -komento listataksesi JAR-tiedoston sisällön.
  17. Entä jos JAR-tiedostoni on liian suuri?
  18. Käytä maven-shade-plugin poistaaksesi tarpeettomat tiedostot ja minimoidaksesi JAR-koon.

Loppuajatuksia Maven Executable JAR:eista

Suoritettavan JAR:n luominen riippuvuuksilla Mavenin avulla yksinkertaistaa Java-sovellusten käyttöönottoprosessia. Määrittämällä oikein pom.xml tiedostoa ja käyttämällä laajennuksia, kuten Maven Assembly Plugin tai Maven Shade Plugin, kehittäjät voivat pakata kaikki tarvittavat riippuvuudet yhdeksi JAR-tiedostoksi. Tämä lähestymistapa varmistaa, että sovellus voi toimia saumattomasti eri ympäristöissä, mikä tekee jakelusta ja suorittamisesta yksinkertaista. Näiden vaiheiden noudattaminen auttaa sinua hallitsemaan projektisi riippuvuuksia tehokkaasti ja luomaan luotettavia, suoritettavia JAR-tiedostoja.