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

升级Kotlin至1.8后JDK17下Maven Kotlin插件构建失败求助

解决Kotlin 1.8 + JDK 17 Maven构建的InaccessibleObjectException问题

这个报错的核心原因是JDK 17的模块系统禁止了未命名模块对java.io包的反射访问,报错栈里的com.intellij.util.io.IOUtil属于kotlin-maven-plugin自身的依赖代码,不是业务代码或Kotlin编译逻辑。你之前添加的<args>是传给Kotlin编译器(kotlinc)的参数,对插件自身运行时的JVM权限没有作用,所以问题没解决。

正确的做法是给kotlin-maven-plugin的JVM进程添加模块开放参数,需要用<jvmArgs>配置项,而非<args>。修改后的Maven插件配置如下:

<plugin>
    <artifactId>kotlin-maven-plugin</artifactId>
    <groupId>org.jetbrains.kotlin</groupId>
    <version>${kotlin.version}</version>
    <configuration>
        <jvmTarget>${java.version}</jvmTarget>
        <!-- 给插件自身的JVM进程添加模块访问权限 -->
        <jvmArgs>
            <jvmArg>--add-opens java.base/java.io=ALL-UNNAMED</jvmArg>
        </jvmArgs>
    </configuration>
    <!-- 绑定编译、测试编译目标 -->
    <executions>
        <execution>
            <id>compile</id>
            <phase>compile</phase>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
        <execution>
            <id>test-compile</id>
            <phase>test-compile</phase>
            <goals>
                <goal>test-compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

补充说明:Kotlin 1.8完全支持JDK 17,这个场景是官方支持的,只是Maven插件配置需要区分「编译器参数」和「插件运行时JVM参数」。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:40:20