首頁  >  文章  >  Java  >  Java之Maven工程打包jar的方法是什麼

Java之Maven工程打包jar的方法是什麼

WBOY
WBOY轉載
2023-04-29 18:31:142565瀏覽

Maven打包一般可以產生兩種包一種是可以直接運行的包,一種是依賴包(只是編譯包)。 Maven預設打包時jar,如果需要修改其他類型。可以修改pom.xml

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

Maven工程預設引入的插件:

Java之Maven工程打包jar的方法是什麼

#1.一般的jar(不能執行)

   產生的jar只是一個編譯包,並沒有打包依賴jar包。透過控制台的編譯日誌可以看出來,方式使用maven-jar-plugin:2.4插件。

java編譯插件,可以設定jdk的版本等(如果不設定使用默認,可以不設定

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

方式1:命令列方式

             控制台執行   mvn clean package

方式2:鼠標操作

             Maven->Plugins->clean->package 

2.可執行Jar

這種產生的jar一般可以直接透過java -jar 方式直接運作。

方式1:SpringBoot框架(依賴在jar中)

該方式是使用spring-boot-maven-plugin外掛程式打包。

Java之Maven工程打包jar的方法是什麼

第一步:pom.xml增加##

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

第二步驟:控制台執行

mvn clean package  spring-boot:repackage

注意: 如果目前pom檔案中指定parent(可選)

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.0</version>
</parent>

控制台指令只需要執行

mvn clean package

Java之Maven工程打包jar的方法是什麼

##方式2: 依賴套件與專案包分離(依賴在外部目錄lib)

        將依賴JAR包輸出到lib目錄方式(打包方式對於JAVA專案是通用的)。該方式需要引入maven-jar-plugin插件。

第一步:pom.xml增加

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

#第二步:控制台執行##mvn clean dependency :copy-dependencies  -DoutputDirectory=target/lib package

注意: 如果簡化控制台的執行命令,我們可以透過增加外掛程式配置

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

Java之Maven工程打包jar的方法是什麼方式3:依賴套件和項目在一個jar(非springboot專案)

該方式使用maven-assembly-plugin插件,但是這種方式並不是把依賴的jar拷貝到最終的jar中,而是將依賴jar的class文件拷貝到最終的jar,所以這種方式會丟失一些資源文件,所以對於springboot的項目會啟動失敗。

第一步: pom.xml增加

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

第二步: 控制台執行

mvn clean  assembly:single

或滑鼠操作maven project(右邊欄)->選擇Plugins->選擇assembly->點擊assembly:assembly

Java之Maven工程打包jar的方法是什麼總結:對於springboot專案只能使用方式1和方式2,才能正常啟動。

3. Scala專案打包 

第一步:pom.xml的build>plugins中增加

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

#第二步:控制台執行

maven clean package

或滑鼠執行maven project(右邊欄)->選擇Lifecycle->點擊package或install打包

4 . groovy專案包裝

第一步:pom.xml的build>plugins中增加

<plugin>
    <groupId>org.codehaus.gmavenplus</groupId>
    <artifactId>gmavenplus-plugin</artifactId>
    <version>1.2</version>
    <executions>
        <execution>
            <goals>
                <goal>addSources</goal>
                <goal>addStubSources</goal>
                <goal>compile</goal>
                <goal>execute</goal>
            </goals>
        </execution>
    </executions>
</plugin>

第二步: 控制台執行

maven clean package

或滑鼠執行maven project(右邊欄)->選擇Lifecycle->點擊package或install打包

以上是Java之Maven工程打包jar的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除