使用Maven构建WebAPI.war失败:gmaven-plugin API兼容性异常求助
解决GMaven插件API兼容性导致的Maven构建失败问题
问题根源
你遇到的java.lang.ExceptionInInitializerError是因为org.codehaus.gmaven:gmaven-plugin:1.5是已停止维护的老旧插件,它的API与当前使用的Java版本或Maven版本存在兼容性冲突。这个插件早已停止更新,无法适配新版Java和Maven的API变化。
解决方案
推荐替换为GMavenPlus插件(gmavenplus-plugin),这是gmaven-plugin的官方替代项目,持续维护且兼容性更好。同时调整配置实现相同的Git属性设置逻辑:
1. 替换插件依赖与配置
将原pom.xml中的gmaven-plugin配置替换为以下内容:
<plugin> <groupId>org.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> <version>1.13.1</version> <!-- 使用最新稳定版 --> <executions> <execution> <id>add-git-branch-info</id> <phase>generate-resources</phase> <goals> <goal>execute</goal> </goals> <configuration> <scripts> <script> if (project.properties.getProperty("git.branch") == null) { project.properties.setProperty("git.branch", "*"); } if (project.properties.getProperty("git.commit.id.abbrev") == null) { project.properties.setProperty("git.commit.id.abbrev", "*"); } </script> </scripts> </configuration> </execution> </executions> <dependencies> <!-- 确保使用兼容的Groovy版本,根据你的Java版本选择 --> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>3.0.17</version> <!-- Java 8+推荐此版本,Java 11+可升级到4.x --> <type>pom</type> </dependency> </dependencies> </plugin>
2. 版本适配说明
- Groovy版本:如果项目使用Java 8,选择3.x版本;Java 11及以上推荐4.x版本(如
4.0.2),避免Groovy与Java的API冲突。 - GMavenPlus版本:可根据Maven仓库确认最新稳定版,1.13.1对大部分场景足够稳定。
临时替代方案(不推荐)
如果暂时无法替换插件,需确保环境满足gmaven-plugin 1.5的要求:
- Java版本不高于Java 8
- Maven版本使用3.0.x或3.1.x系列
但这种方案只是权宜之计,老旧插件后续会遇到更多兼容性问题。
验证
修改配置后,执行mvn clean package重新构建,检查是否生成WebAPI.war文件,同时确认插件执行无报错。
内容的提问来源于stack exchange,提问作者Vani
相关产品推荐
相关产品推荐

