Maven - 插件
什么是 Maven 插件?
Maven 实际上是一个插件执行框架,其中每个任务都是由插件完成的。Maven 插件通常用于 −
创建 jar 文件
创建 war 文件
编译代码文件
代码的单元测试
创建项目文档
创建项目报告
一个插件通常提供一组 goals,可以使用以下语法执行 −
mvn [plugin-name]:[goal-name]
例如,可以通过运行以下命令使用 maven-compiler-plugin 的 compile goal 来编译 Java 项目。
mvn compiler:compile
插件类型
Maven 提供了以下两种类型的插件 −
| 序号 | 类型 & 描述 |
|---|---|
| 1 |
Build plugins 它们在构建过程中执行,应在 pom.xml 的 <build/> 元素中配置。 |
| 2 |
Reporting plugins 它们在站点生成过程中执行,应在 pom.xml 的 <reporting/> 元素中配置。 |
插件
以下是几个常用插件的列表 −
| 序号 | 插件 & 描述 |
|---|---|
| 1 |
clean 清理构建后的 target 目录。删除 target 目录。 |
| 2 |
compiler 编译 Java 源文件。 |
| 3 |
surefire 运行 JUnit 单元测试。创建测试报告。 |
| 4 |
jar 从当前项目构建 JAR 文件。 |
| 5 |
war 从当前项目构建 WAR 文件。 |
| 6 |
javadoc 为项目生成 Javadoc。 |
| 7 |
antrun 在构建的任何阶段运行一组 ant 任务。 |
示例 - 插件的使用
我们在示例中广泛使用了 maven-antrun-plugin 来在控制台上打印数据。请参阅构建配置文件章节。让我们更好地理解它,并在 D:\Projects\MVN\project 文件夹中创建一个 pom.xml。
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 命令。
D:\Projects\MVN\project>mvn clean
Maven 将开始处理并显示 clean life cycle 的 clean phase。
D:\Projects\MVN\project>mvn clean
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< com.companyname.projectgroup:project >----------------
[INFO] Building project 1.0
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- clean:3.2.0:clean (default-clean) @ project ---
[INFO] Deleting D:\Projects\MVN\project\target
[INFO]
[INFO] --- antrun:1.1:run (id.clean) @ project ---
[INFO] Executing tasks
[echo] clean phase
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.422 s
[INFO] Finished at: 2025-09-15T12:15:14+05:30
[INFO] ------------------------------------------------------------------------
D:\Projects\MVN\project>
上面的示例说明了以下关键概念 −
插件使用 plugins 元素在 pom.xml 中指定。
每个插件可以有多个 goals。
您可以使用 phase 元素定义插件从哪个 phase 开始处理。我们使用了 clean phase。
您可以通过将任务绑定到插件的 goals 来配置要执行的任务。我们将 echo 任务绑定到 maven-antrun-plugin 的 run goal。
Maven 将下载插件(如果本地仓库中不可用)并开始处理。