插件(Plug-ins)
什么是Maven插件?
Maven实际上是一个插件执行框架,其中每个任务实际上都是由插件完成的。 Maven插件通常用于 -
- 创建jar文件
- 创建战争文件
- 编译代码文件
- 单元测试代码
- 创建项目文档
- 创建项目报告
插件通常提供一组目标,可以使用以下语法执行 -
mvn [plugin-name]:[goal-name]
例如,可以使用maven-compiler-plugin的compile-goal通过运行以下命令来编译Java项目。
mvn compiler:compile
插件类型
Maven提供了以下两种类型的插件 -
Sr.No. | 类型和描述 |
---|---|
1 | Build plugins 它们在构建过程中执行,应该在pom.xml的元素中配置。 |
2 | Reporting plugins 它们在站点生成过程中执行,应在pom.xml的元素中进行配置。 |
以下是几个常见插件的列表 -
Sr.No. | 插件和说明 |
---|---|
1 | clean 构建后清理目标。 删除目标目录。 |
2 | compiler 编译Java源文件。 |
3 | surefire 运行JUnit单元测试。 创建测试报告。 |
4 | jar 从当前项目构建JAR文件。 |
5 | war 从当前项目构建WAR文件。 |
6 | javadoc 为项目生成Javadoc。 |
7 | antrun 从构建中提到的任何阶段运行一组ant任务。 |
Example
我们在示例中广泛使用了maven-antrun-plugin来在控制台上打印数据。 请参阅构建配置文件章节。 让我们以更好的方式理解它,并在C:\MVN\project文件夹中创建一个pom.xml。
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>id.clean</id>
<phase>clean</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>clean phase</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
接下来,打开命令控制台并转到包含pom.xml的文件夹,然后执行以下mvn命令。
C:\MVN\project>mvn clean
Maven将开始处理并显示清洁生命周期的清洁阶段。
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0
[INFO] task-segment: [post-clean]
[INFO] ------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] [antrun:run {execution: id.clean}]
[INFO] Executing tasks
[echo] clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Sat Jul 07 13:38:59 IST 2012
[INFO] Final Memory: 4M/44M
[INFO] ------------------------------------------------------------------
以上示例说明了以下关键概念 -
使用plugins元素在pom.xml中指定插件。
每个插件都可以有多个目标。
您可以使用其阶段元素定义插件应从何处开始处理的阶段。 我们使用了clean阶段。
您可以通过将任务绑定到插件目标来配置要执行的任务。 我们将echo任务与maven-antrun-plugin run目标绑定在一起。
然后,如果本地存储库中没有该插件,Maven将下载该插件并开始处理。