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:
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>
Pelaksanaan konsol mvn pakej bersih
Maven->Plugins->clean->package
Balang yang dihasilkan jenis ini secara amnya boleh dijalankan terus melalui kaedah java -jar
Kaedah ini adalah menggunakan pemalam spring-boot-maven-plugin untuk pembungkusan
Langkah 2: Pelaksanaan konsol.
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)Keluarkan pakej JAR yang bergantung kepada direktori lib (kaedah pembungkusan adalah biasa untuk projek JAVA ini memerlukan pengenalan pemalam maven-jar-plugin
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.0</version> </parent>
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>
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
<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>
<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>
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!