常用 Maven 插件總結
常用 Maven 插件總結
1、maven-source-plugin 提供項目自動將源碼打包并發布的功能,在需要發布源碼項目的pom.xml文件中添加如下代碼即可執行mvn install,maven會自動將source install到repository 。 … 執行mvn source:jar,單獨打包源碼。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<!-- 綁定source插件到Maven的生命周期,并在生命周期后執行綁定的source的goal -->
<executions>
<execution>
<id>attach-sources</id>
<!-- 綁定source插件到Maven的生命周期 -->
<phase>package</phase>
<goals>
<!--在生命周期后執行綁定的source插件的goals -->
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2、maven-compiler-plugin 編譯Java源碼,一般只需設置編譯的jdk版本。
<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>
- source: 源代碼編譯版本;
- target: 目標平臺編譯版本;
- encoding: 字符集編碼。
3、spring-boot-maven-plugin 插件后,當運行maven打包的命令,項目會被打包成一個可以直接運行的jar包,使用"java -jar"可以直接運行。其中xxx-0.0.1-SNAPSHOT.jar.original文件,用戶可將.original后綴去掉便可得到用戶自己編寫的項目包。而xxx-0.0.1-SNAPSHOT.jar文件往往比上面那個文件要大的多,其實其內部已經將用戶編寫的項目所相關的依賴都打進去了。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.5.RELEASE</version>
<configuration>
<mainClass>com.xx.xx</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
問題,打包后是直接可運行的jar, 其他的項目無法直接依賴可運行的jar,解決方案:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
查看包的輸出目錄,果真有兩個相似名稱的包,一個是[name]-[version].jar,另一個是[name]-[version]-exec.jar。解壓對比了這兩個jar,發現名稱含有-exec為可運行包,而另一個為普通包(不可通過 java -jar運行)。

浙公網安備 33010602011771號