本文详解如何在 kotlin/js maven 项目中正确配置并启用新一代 ir 编译器后端,解决因旧版编译器弃用导致的构建失败问题。
本文详解如何在 kotlin/js maven 项目中正确配置并启用新一代 ir 编译器后端,解决因旧版编译器弃用导致的构建失败问题。
Kotlin 1.9.0 起,Kotlin/JS 的旧版 Legacy 编译器已正式弃用;自 1.9.10(及更高版本)起,Legacy 后端被完全移除,所有 Kotlin/JS 构建必须使用基于 IR 的新编译器后端(IR Backend)。若 Maven 项目仍沿用默认配置,执行 mvn compile 时将报错:
[ERROR] Old Kotlin/JS compiler is no longer supported. Please migrate to the new JS IR backend
该错误的根本原因在于:kotlin-maven-plugin 的 js goal 默认关闭 IR 后端(useIrBackend=false),而新版 Kotlin 已不再提供 Legacy 编译能力。
✅ 正确配置方式
只需在 kotlin-maven-plugin 插件配置中显式启用 useIrBackend 即可。关键修改如下(完整插件配置示例):
<plugin><groupid>org.jetbrains.kotlin</groupid><artifactid>kotlin-maven-plugin</artifactid><version>${kotlin.version}</version><!-- ? 启用 IR 编译器的核心配置 --><configuration><useirbackend>true</useirbackend></configuration><executions><execution><id>compile</id><goals><goal>compile</goal><goal>js</goal><!-- 此 goal 将使用 IR 后端生成 JS --></goals></execution><execution><id>test-compile</id><goals><goal>test-compile</goal></goals></execution></executions></plugin>
⚠️ 注意:
true 必须置于标签下,且需位于 外层 —— 若误放于某个 内部,Maven 将忽略该配置。
Wjs Uploading Video下载将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
? 验证与调试技巧
如不确定插件支持哪些配置项,可使用 Maven 内置命令查看详细文档:
mvn help:describe \ -DgroupId=org.jetbrains.kotlin \ -DartifactId=kotlin-maven-plugin \ -Ddetail=true
该命令会输出所有可用参数及其默认值,其中即可确认 useIrBackend 的存在与语义(类型为 boolean,默认 false)。
? 补充说明与最佳实践
- 无需额外依赖:启用 IR 后端不需引入新 artifact,kotlin-stdlib 和 kotlin-maven-plugin 本身已内置 IR 支持;
- 兼容性要求:确保 Kotlin 版本 ≥ 1.9.0(推荐使用最新稳定版,如 1.9.24),旧版本(如 1.8.x)不支持此配置;
- 构建产物变化:启用 IR 后,生成的 JavaScript 文件结构更扁平、体积更小、Tree Shaking 更精准,并原生支持 @JsExport 和模块化输出(如 ES Modules);
- 调试建议:首次迁移后,建议运行 mvn clean compile 并检查 target/classes 和 target/js/packages/ 下是否生成了 .js 和 .js.map 文件,确认编译流程正常。
完成上述配置后,mvn compile 将成功调用 Kotlin/JS IR 编译器,构建出符合现代前端标准的 JavaScript 产物。此举不仅是必要的升级步骤,更是解锁 Kotlin/JS 全部现代化特性的前提。











