Rumah >Java >javaTutorial >Apakah kaedah untuk balang pembungkusan dalam projek Java Maven?

Apakah kaedah untuk balang pembungkusan dalam projek Java Maven?

WBOY
WBOYke hadapan
2023-04-29 18:31:142601semak imbas

Pembungkusan Maven secara amnya boleh menghasilkan dua jenis pakej: satu ialah pakej yang boleh dijalankan secara terus, dan satu lagi adalah pakej bergantung (hanya pakej yang disusun). Maven packages jar secara lalai, jika anda perlu mengubah suai jenis lain. Anda boleh mengubah suai pom.xml

<packaging>jar/ear/ejb</packaging>

Pemalam yang diperkenalkan secara lalai dalam projek Maven:

Apakah kaedah untuk balang pembungkusan dalam projek Java Maven?

1 balang (tidak boleh Jalankan )

Balang yang dijana hanyalah pakej yang disusun dan tidak membungkus pakej balang bergantung. Ia boleh dilihat daripada log kompilasi konsol bahawa pemalam maven-jar-plugin:2.4 digunakan.

pemalam kompilasi java, anda boleh menetapkan versi jdk, dsb. (Jika anda tidak menetapkannya, gunakan lalai, anda tidak perlu menetapkannya

<!-- java编译插件 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Kaedah 1: Kaedah baris arahan

Pelaksanaan konsol mvn pakej bersih

Kaedah 2: Operasi tetikus

Maven->Plugins->clean->package

2 Jar

Balang yang dihasilkan jenis ini secara amnya boleh dijalankan terus melalui kaedah java -jar

Kaedah 1: Rangka kerja SpringBoot ( bergantung pada balang)

Kaedah ini adalah menggunakan pemalam spring-boot-maven-plugin untuk pembungkusan

Langkah 2: Pelaksanaan konsolApakah kaedah untuk balang pembungkusan dalam projek Java Maven?.

mvn clean package spring-boot:repackageNota: Jika induk (pilihan) dinyatakan dalam fail pom semasa

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.4.0</version>
    <configuration>
        <fork>true</fork>
        <!--指定启动的入口,可以省略,springboot会自动查找启动类-->
        <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
    </configuration>
</plugin>

Arahan konsol hanya perlu dilaksanakanpakej bersih mvn

Kaedah 2: Pakej kebergantungan dan Pemisahan pakej projek (bergantung pada lib direktori luaran)

Apakah kaedah untuk balang pembungkusan dalam projek Java Maven? Keluarkan pakej JAR yang bergantung kepada direktori lib (kaedah pembungkusan adalah biasa untuk projek JAVA ini memerlukan pengenalan pemalam maven-jar-plugin

Langkah 1: Tambahkan
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.0</version>
</parent>
pada pom.xml

Langkah 2: Pelaksanaan konsol

mvn clean dependency :copy-dependencies -DoutputDirectory=target/ pakej libNota: Jika kita ingin memudahkan arahan pelaksanaan konsol, kita boleh menambah konfigurasi pemalam

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>

dan kemudian laksanakan konsol pakej bersih mvn

Kaedah 3: Pakej dan projek bergantung dalam satu balang (projek bukan springboot)

Kaedah ini menggunakan pemalam maven-assembly-plugin, tetapi Kaedah ini tidak menyalin balang bergantung kepada balang akhir, tetapi menyalin fail kelas yang bergantung pada balang ke balang akhir Oleh itu, beberapa fail sumber akan hilang dalam kaedah ini, jadi projek springboot akan gagal dimulakan.

Langkah 1: Tambah pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>
Apakah kaedah untuk balang pembungkusan dalam projek Java Maven?

Langkah 2: Pelaksanaan konsol

mvn clean assembly:single

Atau beroperasi projek maven dengan tetikus (lajur kanan)->Pilih Pemalam->Pilih pemasangan->Klik pemasangan:pemasangan

Ringkasan: Ia hanya boleh digunakan untuk projek springboot Kaedah 1 dan 2 boleh bermula seperti biasa.

3. Pembungkusan projek Scala

Langkah pertama: Tambahkan Apakah kaedah untuk balang pembungkusan dalam projek Java Maven?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.5</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.lx.buildjarpackage.BuildJarPackageApp</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>

dalam binaan>plugin pom.xml Langkah kedua: Laksanakan konsol

pakej maven clean atau laksanakan projek maven dengan tetikus (lajur kanan) ->Pilih Kitaran Hayat->Klik pakej atau pasang untuk pakej

4 . Pembungkusan projek Groovy

Langkah pertama: Tambahkan

<plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                    <goal>testCompile</goal>
                </goals>
        </execution>
    </executions>
    <configuration>
        <scalaVersion>${scala.version}</scalaVersion>
        <args>
            <arg>-target:jvm-1.5</arg>
        </args>
    </configuration>
</plugin>

dalam build>plugin pom.xml

pakej maven cleanatau laksanakan projek maven dengan tetikus (lajur kanan) ->Pilih Kitaran Hayat->Klik pakej atau pasang untuk pakej

Atas ialah kandungan terperinci Apakah kaedah untuk balang pembungkusan dalam projek Java Maven?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam