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

JDK17环境下Maven Postman插件注入错误排查求助

解决JDK17下Maven Postman插件Groovy反射访问权限问题

问题背景

  • 环境:Java 17、Maven 3.9.6、Maven Postman插件0.1.6
  • 异常现象:JDK11环境下插件运行正常,升级到JDK17后仅本地机器报错,同环境队友无异常
  • 预期效果:项目构建完成后发送带附件的邮件
  • 已尝试无效操作:执行mvn dependency:tree(构建成功)、更新项目及依赖
  • 核心报错:

注入ch.fortysix.maven.plugin.postaman.MailSenderMojo时出现com.google.inject.ProvisionException,根源是Groovy反射无法访问java.lang.Object.finalize()方法,提示模块java.base未向未命名模块开放java.lang

解决方案

1. 临时命令行修复

执行构建时直接追加JVM权限开放参数:

mvn clean install --add-opens java.base/java.lang=ALL-UNNAMED

2. 持久化配置(推荐)

方式一:配置到Maven全局settings.xml

在settings.xml的<profiles>节点下添加:

<profile>
  <id>jdk17-postman-fix</id>
  <properties>
    <maven.compiler.fork>true</maven.compiler.fork>
    <maven.compiler.args>--add-opens java.base/java.lang=ALL-UNNAMED</maven.compiler.args>
    <maven.exec.args>--add-opens java.base/java.lang=ALL-UNNAMED</maven.exec.args>
  </properties>
</profile>

随后激活该profile(可在settings.xml的<activeProfiles>中添加<activeProfile>jdk17-postman-fix</activeProfile>)。

方式二:配置到项目pom.xml

直接在Postman插件的配置中添加JVM参数:

<build>
  <plugins>
    <plugin>
      <groupId>ch.fortysix</groupId>
      <artifactId>maven-postman-plugin</artifactId>
      <version>0.1.6</version>
      <configuration>
        <!-- 保留你的原有插件配置 -->
        <jvmArguments>--add-opens java.base/java.lang=ALL-UNNAMED</jvmArguments>
      </configuration>
      <!-- 可选:升级Groovy依赖以适配JDK17 -->
      <dependencies>
        <dependency>
          <groupId>org.codehaus.groovy</groupId>
          <artifactId>groovy-all</artifactId>
          <version>3.0.17</version>
        </dependency>
      </dependencies>
      <executions>
        <execution>
          <goals>
            <goal>send-mail</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

问题原因

JDK9及以上的模块系统默认限制了反射对核心模块内部API的访问,旧版本Groovy在JDK17环境下会尝试访问Object.finalize()这个被限制的方法,触发权限异常。本地与队友环境的差异大概率是因为队友的Maven或IDE已提前配置了该权限开放参数,或使用了兼容JDK17的Groovy版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:45:54