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

Maven中pom.xml配置执行bash脚本不生效无报错,是什么原因?

问题根因及修复方案

1. 核心配置层级错误

你当前把exec-maven-plugin的<configuration>块直接写在了plugin全局层级,没有放到对应<execution>的内部,该执行实例无法读取到可执行文件配置,所以不会触发执行,也不会抛出配置错误。

正确配置调整如下:

<plugin>
  <artifactId>exec-maven-plugin</artifactId>
  <version>3.0.0</version>
  <groupId>org.codehaus.mojo</groupId>
  <executions>
    <execution>
      <id>Update Version using QuickTag</id>
      <phase>package</phase>
      <goals>
        <goal>exec</goal>
      </goals>
      <!-- 将configuration移到execution内部 -->
      <configuration>
        <executable>${basedir}/updateVersion.sh</executable>
        <!-- 可选配置:开启后脚本输出会打印到构建日志中,方便排查问题 -->
        <showOutput>true</showOutput>
      </configuration>
    </execution>
  </executions>
</plugin>

2. 其他需检查的常见问题

  • 确保脚本有可执行权限,在项目根目录执行命令:chmod +x updateVersion.sh
  • 同Maven阶段的插件执行顺序和pom里的声明顺序一致,你当前把exec执行绑定到了package阶段,会在jar打包完成后才执行脚本。如果希望版本更新在打包前生效,建议把phase调整为prepare-package,避免打包完才更新版本的异常。
  • 补充优化提示:你已经把quicktag插件的goal绑定到了generate-sources阶段,正常执行mvn package时会自动执行quicktag的版本更新逻辑,不需要额外写bash脚本再调用一次Maven命令,否则会触发Maven递归调用,反而可能导致版本更新重复、构建速度变慢。如果你的脚本没有其他额外逻辑可以直接删掉exec插件的配置即可实现版本自动更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:36:02