开发的代码使用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>
持续更新中。。。