Javascript 如何建立Kotlin多平台构建?
我想将相同的kotlin源代码构建到javascript和java(android)中。有没有标准的方法来实现这一点?对Kotlin的官方多平台支持尚未发布。如果您想了解最新信息,我建议您注意以下问题。Kotlin的官方多平台支持尚未发布。如果您想了解最新情况,我建议您遵循以下步骤Javascript 如何建立Kotlin多平台构建?,javascript,android,kotlin,Javascript,Android,Kotlin,我想将相同的kotlin源代码构建到javascript和java(android)中。有没有标准的方法来实现这一点?对Kotlin的官方多平台支持尚未发布。如果您想了解最新信息,我建议您注意以下问题。Kotlin的官方多平台支持尚未发布。如果您想了解最新情况,我建议您遵循以下步骤 在IntelliJ中创建一个项目。选择一个Gradle项目,然后选择Java(以及您想要的任何其他项目) 创建3个新的Gradle模块:common、android-specific和js-specific。确保它
common
、android-specific
和js-specific
。确保它们作为模块添加到主模块中
common
中删除settings.gradle
,以及您不需要的其他两个模块设置中。gradle
。它应该看起来不像这样:
rootProject.name = 'parent'
include ':common'
include ':android-specific'
include ':js-specific'
org.jetbrains.kotlin:kotlin-stdlib-jre8
到org.jetbrains.kotlin:kotlin stdlib
编辑common
的模块依赖项(build.gradle
文件,第24行)common
、android-specific
和js-specific
。确保它们作为模块添加到主模块中
common
中删除settings.gradle
,以及您不需要的其他两个模块设置中。gradle
。它应该看起来不像这样:
rootProject.name = 'parent'
include ':common'
include ':android-specific'
include ':js-specific'
org.jetbrains.kotlin:kotlin-stdlib-jre8
到org.jetbrains.kotlin:kotlin stdlib
编辑common
的模块依赖项(build.gradle
文件,第24行)gradle配置在没有IntelliJ(或Android Studio)的情况下也可以工作,但我没有测试它你是说Android和JS的代码完全相同?你不会明白的。您最多可以共享相同的代码库,但不共享特定于平台的代码(如JS的DOM操作和Android的活动相关代码)——项目中的许多逻辑不是特定于平台的。特定于平台的东西,如dom操作等,将构建在bog标准模块中,然后只为通用逻辑创建一个模块,并根据通用逻辑创建两个独立的模块,使用特定于平台的代码是-所以我的问题是-这样的模块应该如何构造?例如,在gradle中是否有处理此类问题的标准方法?您是否使用Intellij?我可以马上写一个答案你是说Android和JS的代码完全一样?你不会明白的。您最多可以共享相同的代码库,但不共享特定于平台的代码(如JS的DOM操作和Android的活动相关代码)——项目中的许多逻辑不是特定于平台的。特定于平台的东西,如dom操作等,将构建在bog标准模块中,然后只为通用逻辑创建一个模块,并根据通用逻辑创建两个独立的模块,使用特定于平台的代码是-所以我的问题是-这样的模块应该如何构造?例如,在gradle中是否有处理此类问题的标准方法?您是否使用Intellij?我可以马上写一个答案。我不认为你可以使用Kotlin(Java)
common
模块作为Kotlin(JS)JS特定的
模块的依赖项。为了实现这一点,我在JS特定的/android特定的库中添加了sourceset{main.Kotlin.srcDirs+='../core/src/main/Java'}。@Ilya现在应该没问题了。我已经添加了第6点,其中您可以使common的模块Kotlin依赖项不是特定于平台的(Kotlin stdlib
而不是Kotlin-stdlib-jre8
),我认为您不能将Kotlin(Java)common
模块用作Kotlin(JS)JS特定于
模块的依赖项{main.kotlin.srcDirs+='../core/src/main/java'}到特定于js/android的库中。@Ilya现在应该可以了。我添加了第6点,在其中您可以使common的模块kotlin依赖项不特定于平台(kotlin stdlib
而不是kotlin-stdlib-jre8
)