Izpildāma JAR izveide ar atkarībām, izmantojot Maven

Maven

Maven projektu iesaiņošana vienā izpildāmā JAR

Strādājot ar Java projektiem, lietojumprogramma bieži vien ir jāiepako vienā izpildāmā JAR failā, lai to varētu viegli izplatīt. Maven, spēcīgs būvniecības automatizācijas rīks, ļauj izstrādātājiem iekļaut visas nepieciešamās atkarības šajā vienā izvades JAR.

Šis raksts palīdzēs jums veikt darbības, kas nepieciešamas, lai konfigurētu jūsu Maven projektu, lai iekļautu visus atkarības JAR galīgajā izpildāmajā JAR. Ievērojot šos norādījumus, jūs vienkāršosit izvietošanas procesu un nodrošināsit nevainojamu lietojumprogrammas darbību dažādās vidēs.

Pavēli Apraksts
<plugin> Definē Maven spraudni, kas jāizmanto veidošanas procesā. Spraudņi var izpildīt konkrētus uzdevumus, piemēram, koda apkopošanu vai projekta iepakošanu.
<groupId> Norāda Maven projekta grupas identifikatoru, parasti apgrieztu domēna nosaukumu.
<artifactId> Definē artefakta identifikatoru, kas ir projekta nosaukums.
<version> Norāda projekta pašreizējo versiju.
<build> Ietver projekta būvēšanas konfigurāciju, tostarp spraudņus un resursus.
<descriptorRef> Atsaucas uz iepriekš definētu deskriptoru Maven Assembly Plugin lietošanai, piemēram, "jar-with-dependencies".
<mainClass> Norāda galveno klasi, kas jāizpilda, palaižot JAR failu.
<execution> Definē izpildes bloku spraudnī, norādot uzdevumus, kas jāveic dažādās veidošanas fāzēs.
mvn clean package Komanda notīrīt projektu un iesaiņot to JAR failā, ieskaitot visas atkarības.
java -jar target/...jar Komanda, lai palaistu ģenerēto JAR failu, norādot ceļu uz JAR.

Izpildāmā JAR izveide un palaišana ar Maven

Iepriekš sniegtie skripti parāda, kā konfigurēt Maven projektu, lai visas tā atkarības iesaiņotu vienā izpildāmā JAR failā. Pirmais scenārijs ir Maven failu, kas satur projekta konfigurāciju. Šajā failā tags tiek izmantots, lai definētu Maven Assembly spraudni. Šis spraudnis ir ļoti svarīgs, lai izveidotu izpildāmu JAR, kas ietver visas atkarības. The tags spraudņa konfigurācijā norāda izmantošanu jar-with-dependencies deskriptors, kas nodrošina, ka visas projekta atkarības tiek iesaiņotas galīgajā JAR failā. The tagu iekšpusē sadaļa ir būtiska, jo tā norāda Maven, kurā klasē ir galvenā metode, kas jāpalaiž, kad tiek izpildīts JAR.

The spraudņa konfigurācijas bloks ir vieta, kur darbība notiek. Tas norāda, ka spraudņa mērķis jāizpilda laikā būvniecības dzīves cikla fāze. Tas aktivizē JAR faila izveidi ar atkarībām. Otrais skripts ir vienkārša komandrindas instrukcija: mvn clean package. Šī komanda notīra projektu (noņemot iepriekšējos būvēšanas artefaktus), apkopo avota kodu, palaiž testus un iepako projektu JAR failā. Pēdējais JAR fails atradīsies projekta direktorijā un nosaukts saskaņā ar un norādīts pom.xml.

Izpildāma JAR faila izveide ar atkarībām, izmantojot Maven

Maven konfigurācijas skripts

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

Palaižot Maven komandu, lai iepakotu JAR

Komandrindas instrukcijas

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

Uzlabotas Maven tehnikas atkarībā no iepakojuma

Papildus pamata konfigurācijai izpildāmā JAR izveidei ar Maven, ir arī papildu metodes, kas var uzlabot jūsu veidošanas procesu. Viena no šādām metodēm ietver izmantošanu spraudnis vietā iespraust. Maven Shade spraudnis piedāvā uzlabotas funkcijas uber-JAR (iekļauti JAR ar atkarībām) izveidei. Tas ļauj pārdēvēt pakotnes, lai izvairītos no klases ceļa konfliktiem, un nodrošina labāku dublēto klašu un resursu apstrādi. Turklāt tas piedāvā precīzu kontroli pār to, kuras atkarības ir iekļautas galīgajā JAR.

Vēl viens svarīgs aspekts ir JAR faila lieluma pārvaldība. Lieli JAR faili var būt apgrūtinoši, un to pārsūtīšana vai ielāde var būt lēna. The var palīdzēt ar to, ļaujot izslēgt nevajadzīgus failus un klases, tādējādi samazinot galīgā JAR lielumu. Varat arī konfigurēt spraudni, lai samazinātu JAR, noņemot nebūtisku informāciju, piemēram, neizmantotās klases vai liekos resursus. Šīs uzlabotās konfigurācijas var būt īpaši noderīgas, strādājot pie lieliem projektiem ar daudzām atkarībām.

  1. Kā norādīt galveno klasi manā JAR?
  2. Jūs varat norādīt galveno klasi, izmantojot tagā Maven spraudņa konfigurācijas sadaļa.
  3. Kā es varu izslēgt konkrētas atkarības no galīgā JAR?
  4. Izmantojiet tagu spraudņa konfigurācijā, lai norādītu atkarības, kuras nevajadzētu iekļaut galīgajā JAR.
  5. Kas ir uber-JAR?
  6. Uber-JAR ir JAR fails, kurā ir ne tikai jūsu apkopotais kods, bet arī visas tā atkarības.
  7. Kā es varu izvairīties no klases ceļa konfliktiem manā JAR?
  8. The ļauj pārdēvēt pakotnes atkarību ietvaros, lai izvairītos no konfliktiem.
  9. Kā rīkoties ar dublētām klasēm atkarībās?
  10. Konfigurējiet lai pārvaldītu dublētās klases un resursus, norādot, kā dublikāti jāapstrādā galīgajā JAR.
  11. Vai es varu iekļaut tikai noteiktus failus no atkarības?
  12. Jā, jūs varat konfigurēt vai iekļaut tikai konkrētus failus no atkarības.
  13. Kā palaist iesaiņoto JAR?
  14. Izmantojiet komandu, kam seko ceļš uz jūsu JAR failu.
  15. Kā es varu pārbaudīt sava JAR faila saturu?
  16. Jūs varat izmantot komandu, lai uzskaitītu JAR faila saturu.
  17. Ko darīt, ja mans JAR fails ir pārāk liels?
  18. Izmantojiet lai izslēgtu nevajadzīgos failus un samazinātu JAR izmēru.

Noslēguma domas par Maven Executable JAR

Izpildāmā JAR izveide ar atkarībām, izmantojot Maven, vienkāršo Java lietojumprogrammu izvietošanas procesu. Pareizi konfigurējot failu un izmantojot tādus spraudņus kā Maven Assembly Plugin vai Maven Shade Plugin, izstrādātāji var iesaiņot visas nepieciešamās atkarības vienā JAR failā. Šī pieeja nodrošina, ka lietojumprogramma var darboties nevainojami dažādās vidēs, padarot izplatīšanu un izpildi vienkāršu. Veicot šīs darbības, varēsit efektīvi pārvaldīt sava projekta atkarības un izveidot uzticamus, izpildāmus JAR failus.