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>