Maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理。
其中有很多用于项目构建的插件。
1、maven-compiler-plugin
用于编译项目源文件,可以设定构建使用的jdk版本信息,从Maven 3.0开始默认使用jdk1.6进行构建。
compile有两个目标(goals),即compile和testCompile,compile主要用于编译main下的源文件,testCompile主要用于编辑test下的源文件。
<build>
<finalName>java-base-mysql</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
2、maven-clean-plugin
用于清理构建的文件,默认构建文件位置为target目录。clean有一个目标(goal),即clean,用于清理构建的信息。
<project>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1</version>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
3、maven-assembly-plugin
用于定制程序的输出信息等,需要自定义assembly.xml文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<finalName>java-base-utils</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
4、maven-resources-plugin
用于处理项目资源文件并拷贝到输出目录。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<overwrite>true</overwrite>
</configuration>
</plugin>
5、build-helper-maven-plugin
maven在默认情况下只允许指定一个主java代码目录src/main/java和一个测试Java代码目录src/test/java。如果需要指定多个源码目录,此时就可以通过build-helper-maven-plugin的add-source目标,通常它被绑定到默认生命周期的generate-sources阶段,用于添加多个源码目录。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>add-source</id>
<phase>initialize</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.basedir}/src/main/java</source>
<source>${project.basedir}/src/circle/java</source>
<source>${project.basedir}/src/car/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
6、maven-war-plugin
负责收集web应用的所有构件依赖、classes和resources等,并将其进行打包到一个web应用构件中。执行后会生成一个war包和一个jar包,jar包可用于其它应用依赖。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp</directory>
<includes>
<include>WEB-INF/web.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
7、tomcat7-maven-plugin
使用maven中的tomcat插件,可以将tomcat集成到项目中,此时在不同平台中无需配置tomcat就可以直接运行web应用。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/giser/</path>
<useBodyEncodingForURI>true</useBodyEncodingForURI>
</configuration>
</plugin>
8、maven-enforcer-plugin
用于把控一定的环境限制,如maven版本、JDK版本、依赖等问题,在进行mvn clean package的时候,会在console中打印出来冲突的jar版本和其父pom。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<dependencyConvergence/>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
9、maven-source-plugin 将源码打包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
Maven – Available Plugins
更多待更新。。。