開發的代碼使用maven進行管理,再常見不過。maven其實是由許多內置的插件,來支撐我們日常需求的。下面來看看都有哪些常用的插件,你注意到過嗎?
編譯插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<!--指定JDK版本和編碼-->
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
源碼打包插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.6.0</version>
<!-- 進行package命令時就可以將源碼同時進行打包 -->
<!-- 所以我們需要綁定source插件到我們default生命週期的package階段 -->
<executions>
<execution>
<!-- 定義一個階段,這個階段是package -->
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
在默認的情況下,對於src/main/java目錄,Maven只打包class文件,而不會打包其他文件,如果src/main/java目錄中有其他類型的文件,如.xml、.properties文件。需要做如下配置
在pom文件中找到<build>節點增加如下配置
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
生成jar包插件(agent開發使用)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<!-- premain類的全類名 -->
<Premain-Class>
com.kaka.jtest.jdk.java.lang.instrument.VMAgent
</Premain-Class>
<!-- agent類的全類名 -->
<Agent-Class>
com.kaka.jtest.jdk.java.lang.instrument.hotswap.ReplaceAgent
</Agent-Class>
<Can-Redefine-Classes>
true
</Can-Redefine-Classes>
<Can-Retransform-Classes>
true
</Can-Retransform-Classes>
<Boot-Class-Path>D:\Java\jdk1.8.0_31\lib\tools.jar</Boot-Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
生成war包插件
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>webapp</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
持續更新中。。。