在Kotlin 1.3多平台Gradle项目中从kotlin-jvm参考kotlin-js资源

时间:2018-12-03 03:38:50

标签: kotlin-multiplatform

在Kotlin 1.2.61中,可能存在从kotlin-jvm模块到kotlin-js模块的Gradle依赖项。

这对于将生成的js文件包含在独立的jar中以用作静态资源很有用。

但是,从Kotlin 1.2.70版本开始,存在一项限制,该限制可以阻止将Kotlin-jvm模块与kotlin-js模块之间的依赖关系添加,请参见:issue

确保在kotlin-jvm模块之前构建kotlin-js模块的受支持方式是什么,以便可以将kotlin-js dist文件包含在kotlin-jvm模块中(大概不添加依赖项)他们之间)?

1 个答案:

答案 0 :(得分:1)

回答自己的问题,结果表明不赞成使用Kotlin前端插件,并且受支持的解决方案是使用Multiplatform插件。

我能够使其与Kotlin Gradle DSL一起使用,并具有Spring Boot后端(包括能够从IDE进行调试)和热重载React前端: https://github.com/alexoooo/sample-multiplatform-boot-react

proj-jvm build.gradle.kts声明对proj-js模块的依赖项:

tasks.withType<ProcessResources> {
    val jsProject = project(":proj-js")
    val task = jsProject.tasks.getByName("browserProductionWebpack") as KotlinWebpack

    from(task.destinationDirectory!!) {
        into("public")
    }

    dependsOn(task)
}

请注意,Kotlin多平台项目目前仍处于试验阶段,随着引入新的IR,某些细节可能会发生变化:https://blog.jetbrains.com/kotlin/2020/03/kotlin-1-4-m1-released/