Maven(6)——Maven插件浅谈

一、Maven 插件

之前的文章介绍了Maven的三套生命周期:clean,default,site。

每个生命周期中都包含着一系列的阶段(phase)。这些 phase 就相当于 Maven 提供的统一的接口,然后这些 phase 的实现由 Maven 的插件来完成。例如在clean生命周期中,输入的clean命令: mvn clean,具体的clean操作就是由 maven-clean-plugin 来实现的。

Maven 实际上是一个依赖插件执行的框架, Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。

Maven插件语法:

mvn [plugin-name]:[goal-name]
示例:mvn compiler:compile

二、插件类型

两种类型插件:

  • 构建插件 在生成过程中执行,并在 pom.xml 中的<build/> 元素进行配置 
  • 报告插件 在网站生成期间执行,在 pom.xml 中的 <reporting/> 元素进行配置 

常见的插件列表:

插件 描述
clean 编译后的清理目标,删除目标目录
compiler 编译 Java 源文件
surefile 运行JUnit单元测试,创建测试报告
jar 从当前项目构建 JAR 文件
war 从当前项目构建 WAR 文件
javadoc 产生用于该项目的 Javadoc
antrun 从构建所述的任何阶段运行一组 Ant 任务

命名规范:

Maven官方插件:maven-<pluginName>-plugin

第三方插件:<yourplugin>-maven-plugin

三、使用示例

在之前文章Maven生命周期中使用的插件Maven-antrun-plugin:

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.1</version>
				<executions>
					<execution>
						<id>id.pre-clean</id>
						<phase>pre-clean</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<echo>pre-clean phase</echo>
							</tasks>
						</configuration>
					</execution>
					<execution>
						<id>id.clean</id>
						<phase>clean</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<echo>clean phase</echo>
							</tasks>
						</configuration>
					</execution>
					<execution>
						<id>id.post-clean</id>
						<phase>post-clean</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<echo>post-clean phase</echo>
							</tasks>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

Maven(6)——Maven插件浅谈