在pom.xml中配置插件必须将<plugin>嵌套在<build><plugins>或<pluginManagement><plugins>内;直接生效写在<plugins>,统一管理写在<pluginManagement>;需指定坐标、绑定phase(如package)并正确使用<executions>。

在 pom.xml 中配置插件,核心是把插件声明放在 <build> 标签内的 <plugins> 里。注意:不是直接写 <build><plugin>...</plugin></build>,必须套一层 <plugins>。
基础结构:plugins 必须嵌套在 pluginManagement 或 plugins 下
<build> 下有两种常见写法:
-
直接生效的插件(推荐初学者用):写在
<build><plugins>...</plugins></build>,这些插件会自动在构建生命周期中执行(只要绑定了 phase)。 -
统一管理但不自动启用:写在
<build><pluginManagement><plugins>...</plugins></pluginManagement></build>,只定义版本和默认配置,子模块需显式声明才能生效。
配置一个典型插件(比如 maven-compiler-plugin)
例如设置 Java 版本:
<build><plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
</plugins>
</build>
绑定插件到特定生命周期阶段(可选但常用)
有些插件默认已绑定(如 compiler 插件绑在 compile 阶段),但自定义插件常需手动指定。用 <executions> + <execution>:
-
<id>:执行块标识(如default-cli或自定义名) -
<phase>:绑定到哪个生命周期阶段(如package,verify) -
<goals>:指定要运行的目标(如<goal>check</goal>)
示例:用 maven-antrun-plugin 在打包前打印日志:
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>log-before-package</id>
<phase>package</phase>
<goals><goal>run</goal></goals>
<configuration>
<target><echo>Building JAR...</echo></target>
</configuration>
</execution>
</executions>
</plugin>
注意事项和常见坑
- 插件坐标(
groupId、artifactId、version)缺一不可,否则 Maven 可能用默认旧版或报错 - 多个
<execution>可共存,但<id>不能重复 - 如果插件没反应,先确认它是否真的绑定了 phase;可用
mvn help:describe -Dplugin=xxx查看默认绑定 - 父 POM 中用
<pluginManagement>管理版本,子模块只需写<plugin><artifactId>xxx</artifactId></plugin>即可复用配置
基本上就这些。配插件不复杂但容易忽略嵌套层级和 phase 绑定,按结构填进去基本就能跑起来。










