You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何exec-maven-plugin会重复执行所有阶段?如何修复该问题?

解决exec-maven-plugin重复执行的问题

这种exec-maven-plugin莫名执行两次的问题我碰过好多次,大概率是这几个常见坑导致的,我给你一步步排查和解决的思路:

常见原因及对应解决方案

1. 重复绑定了插件执行逻辑

  • 排查点:检查你的pom.xml是否存在以下情况:
    • 同一个插件配置了多个<execution>节点,且都绑定到了同一个构建阶段
    • 项目继承的父pom已经配置了该插件,子pom又重复添加了一遍完整配置
    • 命令行执行时同时指定了构建阶段和插件目标(比如mvn compile exec:exec,这样既会触发compile阶段绑定的执行,又会直接执行exec:exec目标)
  • 解决方法:
    • 删掉重复的<execution>节点,确保每个执行逻辑只绑定一次
    • 检查父pom的插件配置,子pom如果需要覆盖配置,用<pluginManagement>或者直接继承即可,不要重复添加完整插件配置
    • 只执行绑定了插件的构建阶段命令(比如只跑mvn compile),不要额外在命令行加插件目标

2. 未指定唯一的execution ID

  • 排查点:如果你的<execution>节点没有设置<id>,Maven会自动生成默认ID,若存在多个无ID的execution,可能导致重复执行逻辑
  • 解决方法:给每个<execution>设置唯一的ID,比如:
    <execution>
      <id>unique-exec-id</id> <!-- 必须唯一 -->
      <phase>compile</phase>
      <goals>
        <goal>exec</goal>
      </goals>
    </execution>
    

3. 插件配置中指定了多个目标(goal)

  • 排查点:如果在<goals>里同时添加了exec:exec和exec:java,或者重复添加了同一个goal,每个goal都会触发一次执行
  • 解决方法:确保<goals>里只保留你需要的一个目标,比如只留<goal>exec</goal>

4. 用调试日志定位根源

如果以上方法都没找到问题,直接跑带调试日志的命令:

mvn clean compile -X

在日志里搜索exec-maven-plugin,可以看到每一次执行的触发源(是哪个execution、哪个阶段触发的),精准定位重复执行的原因。

正确配置示例

这里给你一个不会重复执行的标准配置参考:

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.0</version>
      <executions>
        <execution>
          <id>single-execution-id</id>
          <phase>compile</phase>
          <goals>
            <goal>exec</goal>
          </goals>
          <configuration>
            <!-- 这里写你的执行配置,比如执行的命令、参数等 -->
            <executable>echo</executable>
            <arguments>
              <argument>Hello from exec plugin</argument>
            </arguments>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

内容的提问来源于stack exchange,提问作者Thundercleez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:23:10