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

配置maven-release-plugin使用shallow选项遇NoSuchFieldError错误如何解决?

解决maven-release-plugin与maven-scm-provider-gitexe的SHALLOW字段兼容性问题

这个错误java.lang.NoSuchFieldError: SHALLOW的核心原因是maven-release-plugin的版本与你引入的maven-scm-provider-gitexe版本不兼容:

  • 你使用的maven-scm-provider-gitexe 1.10.0依赖的是maven-scm-api 1.10.0,其中新增了SHALLOW字段;
  • 而你原来的maven-release-plugin 2.3.2/2.5.3默认依赖的是更低版本的maven-scm-api(比如2.5.3依赖的是1.9.5),这个版本里并没有SHALLOW字段,导致运行时出现字段找不到的错误。

解决方案:统一SCM组件版本

你需要在maven-release-plugin的依赖中同时指定maven-scm-api和maven-scm-provider-gitexe的版本为1.10.0,覆盖插件自带的低版本依赖,确保API和实现版本一致。

修改后的pom配置如下:

<properties>
  <shallow>true</shallow>
</properties>

<pluginManagement>
  <plugins>
    <plugin>
      <artifactId>maven-release-plugin</artifactId>
      <!-- 可以继续使用2.5.3版本,只要统一SCM依赖版本即可 -->
      <version>2.5.3</version>
      <dependencies>
        <dependency>
          <groupId>org.apache.maven.scm</groupId>
          <artifactId>maven-scm-api</artifactId>
          <version>1.10.0</version>
        </dependency>
        <dependency>
          <groupId>org.apache.maven.scm</groupId>
          <artifactId>maven-scm-provider-gitexe</artifactId>
          <version>1.10.0</version>
        </dependency>
      </dependencies>
    </plugin>
  </plugins>
</pluginManagement>

额外说明

如果后续还是遇到类似兼容性问题,建议查看maven-release-plugin的官方依赖信息,确认其默认依赖的maven-scm组件版本,确保你引入的SCM实现版本与插件依赖的API版本完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:52:46