插件配置基础
plugins 元素配置项目使用的插件及其参数。
插件声明结构
XML
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
<executions>
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
插件元素说明
| 元素 | 说明 |
|---|---|
| groupId | 插件组织标识 |
| artifactId | 插件名称 |
| version | 插件版本 |
| configuration | 参数配置 |
| executions | 执行配置 |
| dependencies | 插件依赖 |
configuration 配置
基本配置
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source>
<target>17</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-Xlint:unchecked</arg>
</compilerArgs>
</configuration>
</plugin>
常用 compiler 配置
| 参数 | 说明 | 示例 |
|---|---|---|
| source | 源码版本 | 17 |
| target | 字节码版本 | 17 |
| encoding | 编码 | UTF-8 |
| compilerArgs | 编译参数 | -Xlint:unchecked |
executions 执行配置
绑定目标到阶段
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
execution 元素
| 元素 | 说明 |
|---|---|
| id | 执行标识 |
| phase | 绑定阶段 |
| goals | 执行目标列表 |
| configuration | 执行级配置 |
pluginManagement
说明
pluginManagement 定义插件版本和默认配置,不直接激活插件。
父 POM 配置
XML
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
子模块引用
XML
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- version 和 configuration 继承 -->
</plugin>
</plugins>
</build>
插件依赖
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
</plugin>
全局配置 vs 执行配置
区别
| 级别 | 作用范围 |
|---|---|
| plugin/configuration | 所有执行共享 |
| execution/configuration | 仅该执行生效 |
示例
XML
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source> <!-- 全局配置 -->
</configuration>
<executions>
<execution>
<id>compile-with-debug</id>
<configuration>
<compilerArgs>
<arg>-g</arg> <!-- 仅此执行生效 -->
</compilerArgs>
</configuration>
</execution>
</executions>
</plugin>
查看插件参数
Bash
mvn help:describe -Dplugin=maven-compiler-plugin -Ddetail
要点总结
- plugins 声明插件,configuration 配置参数
- executions 绑定插件目标到生命周期阶段
- pluginManagement 管理插件版本,不激活插件
- 全局 configuration 所有执行共享
- 使用 help:describe 查看插件参数详情
📝 发现内容有误?点击此处直接编辑