1. maven打包方式 maven打包有三種方式 pom、jar、war。在pom.xml 文件中聲明的方式分別如下: <!-- 1. pom方式 --> <packaging>pom</packaging>` <!-- 2. jar方式 --> <packaging>jar</packaging ...
1. maven打包方式
maven打包有三種方式 pom、jar、war。在pom.xml 文件中聲明的方式分別如下:
<!-- 1. pom方式 -->
<packaging>pom</packaging>`
<!-- 2. jar方式 -->
<packaging>jar</packaging>
<!-- 3. war方式 -->
<packaging>war</packaging>
以上三種打包方式不同出現在同一個 pom 文件中。
pom:用在父級工程或聚合工程中,必須指明打包方式為pom。子module可繼承父工程依賴。
jar:工程的預設打包方式。
war:將會打包成war。
2. maven打包插件
<!-- 1. maven 預設打包插件,用來創建 project jar -->
maven-jar-plugin
<!-- 2. 用來打可執行包 -->
maven-shade-plugin
<!-- 3. 支持定製化打包方式,例如 apache 項目的打包方式 -->
maven-assembly-plugin
<!-- 4. springboot打包插件 -->
spring-boot-maven-plugin
3. SpringBoot 打包
Spring Boot 中預設打包成可執行 jar ,可以通過 java -jar xxx.jar 命令執行但是不可以被其他的應用所依賴。普通的 jar 不可以通過 java -jar xxx.jar 命令執行,普通的 jar 主要是被其他應用或模塊依賴。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如上springboot引導程式生成的pom.xml文件中預設的maven插件,其打包的Jar包可以直接運行,但是不可依賴!
如果子模塊被打包成可運行 jar 包則 SpringBoot 項目編譯運行時提示“程式包xxx不存在,找不到符號”錯誤。我們可以通過<classifier>exec</classifier>
標簽在打包的時候生成普通jar包和可執行jar包,修改如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
或者通過<skip>true</skip>
標簽在打包的時候生成普通jar包,修改如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
----
作者:快樂隨行
著作權歸作者所有,商業轉載請聯繫作者獲得授權,非商業轉載請註明原文作者及出處。
許可: CC BY-SA 4.0
----