首页/ 学科题库/ maven/ 插件配置基础
maven 实战教程

插件配置基础

2026-05-23 约 5 分钟 juanwangdev

插件配置基础

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 查看插件参数详情
想在手机上练这篇的配套题目?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别下方二维码,即可解锁本讲对应真题与错题本。
了解产品 App
← 上一篇 常用内置插件 下一篇 → 插件命令执行