依赖JVM的Kotlin MultiplatfromJS模块

时间:2018-08-14 10:06:47

标签: gradle kotlin kotlin-multiplatform kotlin-js

我有一个带有共同点,JS和JVM模块的Kotlin Multiplatform项目。 JVM模块使用JavaFX WebView来显示GUI。但是,此GUI应作为JS模块实现。如何正确添加JS模块作为依赖项?我尝试过

dependencies {
    compile project(":myproject-js")
}

但是,这不包括在类路径中任何地方生成的JS文件。 JS模块确实确实创建了具有所需依赖项的JAR文件,但我找不到访问它们的方法。

我也尝试过简单地将JS文件复制到我的生成输出中,但是仍然被忽略:

configurations {
    js
}

dependencies {
    js project(":myproject-js")
}

project.afterEvaluate {
    build.dependsOn copyResources
}

task copyResources(type: Copy) {
    dependsOn configurations.js

    into file("${project.buildDir}/resources")

    from {
        configurations.js.asFileTree.each {
            from (zipTree(it))
        }
        null
    }
}

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

这是应该工作的:

  1. myproject-js依赖项创建配置:

    configurations {
        js
    }
    
  2. 将项目依赖项添加到该配置:

    dependencies {
        js project(":myproject-js")
    }
    
  3. 使用processResources和相应的构建依赖性将配置文件添加到.from(...)任务中:

    processResources {
        dependsOn configurations.js
        from(configurations.js.collect { zipTree(it) })
    }
    

然后,每当您构建JVM项目时,JS模块的文件都将解压缩到资源输出目录中,然后再打包到JAR中。