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

Java 17升级时groovy-maven-plugin:2.0执行报错求助

解决Java 17升级后groovy-maven-plugin初始化失败的问题

核心原因

你碰到的InaccessibleObjectException是因为Java 17的模块系统默认限制了对内部API的访问,而旧版本groovy-maven-plugin:2.0依赖的Groovy版本会尝试调用java.lang.finalize()这个被模块系统封锁的方法,导致GroovySystem初始化失败。

推荐解决方案:升级到兼容Java 17的Groovy Maven插件

原org.codehaus.gmaven:groovy-maven-plugin已停止维护,建议替换为它的继任者gmavenplus-plugin,该插件支持Java 17及更高版本。修改后的POM配置如下:

<plugin>
    <groupId>org.codehaus.gmavenplus</groupId>
    <artifactId>gmavenplus-plugin</artifactId>
    <version>1.13.1</version> <!-- 可使用最新稳定版 -->
    <executions>
        <execution>
            <id>echo-build-environment</id>
            <phase>validate</phase>
            <goals>
                <goal>execute</goal>
            </goals>
            <configuration>
                <scripts>
                    <script><![CDATA[
                        log.info("POM Hierarchy")
                        def rootPom = project;
                        while (rootPom.parent != null) {
                            log.info(rootPom.groupId + ':' + rootPom.artifactId + ':' + rootPom.version)
                            rootPom = rootPom.parent;
                        }
                        log.info(rootPom.groupId + ':' + rootPom.artifactId + ':' + rootPom.version)
                    ]]></script>
                </scripts>
            </configuration>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>3.0.17</version> <!-- 选择兼容Java17的Groovy版本 -->
            <type>pom</type>
        </dependency>
    </dependencies>
</plugin>

备选临时方案(不推荐)

如果暂时无法替换插件,可以通过添加JVM参数开放模块访问权限,但这只是临时 workaround,长期来看还是建议升级插件:

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>groovy-maven-plugin</artifactId>
    <version>2.0</version>
    <executions>
        <!-- 保持原有execution配置不变 -->
    </executions>
    <configuration>
        <jvmArguments>--add-opens java.base/java.lang=ALL-UNNAMED</jvmArguments>
    </configuration>
</plugin>

内容的提问来源于stack exchange,提问作者Abhishek-Sahu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:37:42