Suoritettavan JAR:n luominen riippuvuuksilla Mavenin avulla

Maven

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 tiedosto, joka sisältää projektin asetukset. Tässä tiedostossa on -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 -tunniste laajennuksen kokoonpanossa määrittää jar-with-dependencies kuvaaja, joka varmistaa, että kaikki projektin riippuvuudet pakataan lopulliseen JAR-tiedostoon. The tagin sisällä -osio on olennainen, koska se kertoo Mavenille, mikä luokka sisältää päämenetelmän, joka suoritetaan, kun JAR suoritetaan.

The lohko laajennuksen kokoonpanossa on paikka, jossa toiminto tapahtuu. Se määrittää, että laajennuksen tavoite tulee suorittaa aikana 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 projektin hakemistosta ja nimetty ja 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ää plugin sijasta 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 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.

  1. Kuinka määritän pääluokan JAR:issani?
  2. Voit määrittää pääluokan käyttämällä -tunnisteen sisällä Maven-laajennuksen kokoonpanon osa.
  3. Kuinka voin sulkea pois tietyt riippuvuudet lopullisesta JAR:sta?
  4. Käytä -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 voit nimetä uudelleen riippuvuuksien sisällä olevia paketteja ristiriitojen välttämiseksi.
  9. Kuinka käsittelen päällekkäisiä luokkia riippuvuuksissa?
  10. Määritä 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ää tai sisällyttääksesi vain tietyt tiedostot riippuvuudesta.
  13. Kuinka käytän pakattua JAR:ia?
  14. Käytä komento ja sen jälkeen polku JAR-tiedostoosi.
  15. Kuinka voin tarkistaa JAR-tiedostoni sisällön?
  16. Voit käyttää -komento listataksesi JAR-tiedoston sisällön.
  17. Entä jos JAR-tiedostoni on liian suuri?
  18. Käytä 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 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.