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

如何在Maven中配置Kotlin/JS新IR编译器?旧编译器已不支持

解决Kotlin/JS旧编译器不支持问题(Maven配置迁移到新IR后端)

要迁移到Kotlin/JS的新IR后端,需要对pom.xml做以下几处关键修改:

1. 更新依赖

将原有的kotlin-stdlib替换为IR后端对应的标准库kotlin-stdlib-js:

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib-js</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
</dependencies>

2. 修改Kotlin Maven插件配置

  • 移除旧的js编译目标,替换为新IR后端的js-ir目标
  • 添加插件配置,指定JS后端运行环境(如browser或nodejs),显式启用IR后端

修改后的插件完整配置如下:

<plugin>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-plugin</artifactId>
    <version>${kotlin.version}</version>
    <executions>
        <execution>
            <id>compile</id>
            <goals>
                <goal>compile</goal>
                <goal>js-ir</goal> <!-- 替换原js目标 -->
            </goals>
        </execution>
        <execution>
            <id>test-compile</id>
            <goals>
                <goal>test-compile</goal>
                <goal>test-js-ir</goal> <!-- 可选:编译测试代码的JS IR版本 -->
            </goals>
        </execution>
    </executions>
    <configuration>
        <jsTarget>browser</jsTarget> <!-- 指定目标环境,可选browser或nodejs -->
        <ir>true</ir> <!-- 显式启用IR后端 -->
    </configuration>
</plugin>

完整修改后的pom.xml示例

<project>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.group</groupId>
    <artifactId>artifact</artifactId>
    <version>0.0.1</version>

    <properties>
        <kotlin.version>1.9.10</kotlin.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib-js</artifactId>
            <version>${kotlin.version}</version>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
        <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <goals>
                            <goal>compile</goal>
                            <goal>js-ir</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <goals>
                            <goal>test-compile</goal>
                            <goal>test-js-ir</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jsTarget>browser</jsTarget>
                    <ir>true</ir>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

关键说明

  • js-ir是Kotlin 1.7+版本支持的新IR后端编译目标,完全替代了旧的js目标
  • kotlin-stdlib-js是IR后端专属的标准库,必须替换原依赖才能保证兼容
  • jsTarget可根据项目实际运行环境选择browser或nodejs

修改完成后,重新执行mvn compile即可完成编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:12:11