Maven常用插件总结
基于Maven管理的项目,很多任务都是依赖插件来完成的,比如编译,打包,发布等,其中有些是Maven内置的插件,也有一些是第三方插件可以帮我们完成某些特定的需求,本文主要是对自己常用的一些Maven插件进行总结、备忘,便于以后查阅之用。
1 maven-compiler-plugin 编译插件,可以指定JDK版本、编码等
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
2 maven-jar-plugin 打jar包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
3 maven-source-plugin 打源码包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
4 maven-assembly-plugin 强大的归档利器,自定义打包
<!--pom.xml中添加插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptors>
<descriptor>xxx/assembly.xml</descriptor>
</descriptors>
<finalName>包名</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</plugin>
<!--上述插件依赖assembly.xml,该文件定义打包的详细规则-->
<assembly>
<id>package</id>
<formats>
<format>tar.gz</format><!--打成包的格式比如zip-->
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<baseDirectory>${artifactId}</baseDirectory>
<moduleSets>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>xxxxxx</include>
</includes>
<sources>
<includeModuleDirectory>false</includeModuleDirectory>
<fileSets>
<fileSet>
<directory>src/main/resources</directory>
<includes>
<include>
....
</include>
</includes>
<filtered>true</filtered>
<outputDirectory>conf</outputDirectory>
</fileSet>
</fileSets>
</sources>
</moduleSet>
</moduleSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>
关于assembly.xml的更多配置,请参考这里
5 tomcat7-maven-plugin 自动部署到tomcat, 配置与使用请见maven项目自动部暑一文。
6 buildnumber-maven-plugin与build-helper-maven-plugin自动生成时间戳,打包时常用,具体使用方法见maven打包加时间戳一文。
7 maven-war-plugin 打war包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<webResources>
<resource>
<directory>target/xxx</directory>
<targetPath>xx/classes</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
(未完,待补充。。。)