Vykdomo JAR su priklausomybėmis sukūrimas naudojant Maven

Maven

„Maven“ projektų supakavimas į vieną vykdomąjį JAR

Dirbant su „Java“ projektais dažnai reikia supakuoti programą į vieną vykdomąjį JAR failą, kad būtų lengva platinti. Maven, galingas kūrimo automatizavimo įrankis, leidžia kūrėjams įtraukti visas būtinas priklausomybes į šį vieną išvesties JAR.

Šis straipsnis padės atlikti veiksmus, kurių reikia norint sukonfigūruoti „Maven“ projektą, kad visi priklausomybės JAR būtų įtraukti į galutinį vykdomąjį JAR. Vykdydami šias instrukcijas supaprastinsite diegimo procesą ir užtikrinsite, kad jūsų programa sklandžiai veiktų įvairiose aplinkose.

komandą apibūdinimas
<plugin> Apibrėžia Maven įskiepį, kuris bus naudojamas kūrimo proceso metu. Papildiniai gali atlikti konkrečias užduotis, tokias kaip kodo kompiliavimas arba projekto supakavimas.
<groupId> Nurodo grupės Maven projekto identifikatorių, paprastai atvirkštinį domeno pavadinimą.
<artifactId> Apibrėžia artefakto identifikatorių, kuris yra projekto pavadinimas.
<version> Nurodo dabartinę projekto versiją.
<build> Yra projekto kūrimo konfigūracija, įskaitant papildinius ir išteklius.
<descriptorRef> Nurodomas iš anksto apibrėžtas Maven Assembly įskiepio aprašas, kurį reikia naudoti, pvz., „stiklainis su priklausomybėmis“.
<mainClass> Nurodo pagrindinę klasę, kuri turi būti vykdoma paleidžiant JAR failą.
<execution> Apibrėžiamas vykdymo blokas papildinyje, nurodant užduotis, kurios turi būti atliekamos skirtingais kūrimo etapais.
mvn clean package Komanda išvalyti projektą ir supakuoti jį į JAR failą, įskaitant visas priklausomybes.
java -jar target/...jar Komanda paleisti sugeneruotą JAR failą, nurodydama kelią į JAR.

Vykdomo JAR sukūrimas ir paleidimas su Maven

Aukščiau pateikti scenarijai parodo, kaip sukonfigūruoti Maven projektą, kad visos jo priklausomybės būtų supakuotos į vieną vykdomąjį JAR failą. Pirmasis scenarijus yra Maven failą, kuriame yra projekto konfigūracija. Šiame faile yra žyma naudojama apibrėžti Maven Assembly Plugin. Šis papildinys yra labai svarbus kuriant vykdomąjį JAR, apimantį visas priklausomybes. The Papildinio konfigūracijos žyma nurodo, kaip naudoti jar-with-dependencies deskriptorius, kuris užtikrina, kad visos projekto priklausomybės būtų supakuotos į galutinį JAR failą. The žyma viduje skyrius yra būtinas, nes jis nurodo Maven, kurioje klasėje yra pagrindinis metodas, kurį reikia paleisti, kai vykdomas JAR.

The Papildinio konfigūracijos blokas yra vieta, kur vyksta veiksmas. Nurodoma, kad papildinio tikslas turėtų būti įvykdytas per statybos gyvavimo ciklo fazė. Tai suaktyvina JAR failo su priklausomybėmis kūrimą. Antrasis scenarijus yra paprasta komandinės eilutės instrukcija: mvn clean package. Ši komanda išvalo projektą (pašalina ankstesnius kūrimo artefaktus), sukompiliuoja šaltinio kodą, atlieka testus ir supakuoja projektą į JAR failą. Galutinis JAR failas bus projekto katalogas ir pavadintas pagal ir nurodyta pom.xml.

Vykdomo JAR failo su priklausomybėmis sukūrimas naudojant Maven

„Maven“ konfigūracijos scenarijus

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

Paleiskite „Maven“ komandą, kad supakuotumėte JAR

Komandinės eilutės instrukcijos

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

Pažangūs „Maven“ pakuočių priklausomybės metodai

Be pagrindinės konfigūracijos kuriant vykdomąjį JAR su Maven, yra papildomų metodų, kurie gali pagerinti jūsų kūrimo procesą. Viena iš tokių technikų apima naudojimą įskiepis vietoj Prijunkite. „Maven Shade“ papildinys siūlo pažangesnes „uber-JAR“ (JAR su priklausomybėmis) kūrimo funkcijas. Tai leidžia pervardyti paketus, kad išvengtumėte klasių kelio konfliktų, ir geriau tvarkyti pasikartojančias klases ir išteklius. Be to, jame galima tiksliai valdyti, kurios priklausomybės yra įtrauktos į galutinį JAR.

Kitas svarbus aspektas yra JAR failo dydžio valdymas. Dideli JAR failai gali būti sudėtingi ir lėtai perkelti arba įkelti. The gali padėti, leisdamas išskirti nereikalingus failus ir klases, taip sumažinant galutinio JAR dydį. Taip pat galite sukonfigūruoti papildinį, kad sumažintumėte JAR, pašalindami neesminę informaciją, pvz., nenaudojamas klases ar perteklinius išteklius. Šios išplėstinės konfigūracijos gali būti ypač naudingos dirbant su dideliais projektais su daugybe priklausomybių.

  1. Kaip nurodyti pagrindinę klasę savo JAR?
  2. Galite nurodyti pagrindinę klasę naudodami žyma viduje Maven papildinio konfigūracijos skyrių.
  3. Kaip galiu išskirti konkrečias priklausomybes iš galutinio JAR?
  4. Naudoti žymą papildinio konfigūracijoje, kad nurodytumėte priklausomybes, kurios neturėtų būti įtrauktos į galutinį JAR.
  5. Kas yra uber-JAR?
  6. Uber-JAR yra JAR failas, kuriame yra ne tik jūsų sukompiliuotas kodas, bet ir visos jo priklausomybės.
  7. Kaip galiu išvengti klasės kelio konfliktų savo JAR?
  8. The leidžia pervardyti paketus priklausomybėse, kad būtų išvengta konfliktų.
  9. Kaip tvarkyti pasikartojančias priklausomybių klases?
  10. Konfigūruoti valdyti pasikartojančias klases ir išteklius, nurodant, kaip dublikatai turi būti tvarkomi galutiniame JAR.
  11. Ar galiu įtraukti tik konkrečius failus iš priklausomybės?
  12. Taip, galite konfigūruoti arba įtraukti tik konkrečius failus iš priklausomybės.
  13. Kaip paleisti supakuotą JAR?
  14. Naudoti komandą, po kurios nurodomas kelias į JAR failą.
  15. Kaip galiu patikrinti savo JAR failo turinį?
  16. Galite naudoti komanda JAR failo turiniui išvardyti.
  17. Ką daryti, jei mano JAR failas yra per didelis?
  18. Naudoti pašalinti nereikalingus failus ir sumažinti JAR dydį.

Baigiamosios mintys apie Maven Executable JAR

Sukūrus vykdomąjį JAR su priklausomybėmis naudojant Maven, supaprastinamas Java programų diegimo procesas. Tinkamai sukonfigūravus failą ir naudodami papildinius, tokius kaip Maven Assembly Plugin arba Maven Shade Plugin, kūrėjai gali supakuoti visas reikalingas priklausomybes į vieną JAR failą. Šis metodas užtikrina, kad programa galėtų sklandžiai veikti įvairiose aplinkose, todėl platinimas ir vykdymas yra nesudėtingas. Atlikę šiuos veiksmus padėsite efektyviai valdyti projekto priklausomybes ir sukurti patikimus, vykdomus JAR failus.