У меня есть мультиплатформенный проект kotlin, который компилируется в JS и JVM со следующей конфигурацией сборки:
common - build.gradle
plugins {
id 'kotlin-platform-common' version '1.3.10'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-common:1.3.10"
compile 'org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.0.1'
testCompile "org.jetbrains.kotlin:kotlin-test-annotations-common"
testCompile "org.jetbrains.kotlin:kotlin-test-common"
}
js - build.gradle
plugins {
id 'kotlin-platform-js' version '1.3.10'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
expectedBy project(":Lib-common")
compile "org.jetbrains.kotlin:kotlin-stdlib-js:1.3.10"
compile 'org.jetbrains.kotlinx:kotlinx-coroutines-core-js:1.0.1'
testCompile "org.jetbrains.kotlin:kotlin-test"
testCompile "org.jetbrains.kotlin:kotlin-test-js"
}
compileKotlin2Js {
kotlinOptions.outputFile = "${projectDir}/output/lib."
kotlinOptions.moduleKind = "commonjs"
kotlinOptions.metaInfo = false
}
compileTestKotlin2Js {
kotlinOptions.outputFile = "${projectDir}/output/lib_test.js"
kotlinOptions.moduleKind = "commonjs"
kotlinOptions.metaInfo = false
}
jvm - build.gradle
plugins {
id 'kotlin-platform-jvm' version '1.3.10'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
expectedBy project(":Lib-common")
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.10"
compile 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.1'
compile 'org.apache.httpcomponents:httpcore:4.4.11'
compile 'org.apache.httpcomponents:httpclient:4.5.7'
compile 'org.apache.httpcomponents:httpmime:4.5.7'
testCompile "junit:junit:4.12"
testCompile "org.jetbrains.kotlin:kotlin-test"
testCompile "org.jetbrains.kotlin:kotlin-test-junit"
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
sourceCompatibility = "1.8"
У меня есть тест в общем модуле, который работает, как и ожидалось, на JVM. Модуль JS успешно компилирует и генерирует файл js с помощью задачи compileKotlin2Js
, однако, когда я запускаю compileTestKotlin2Js
, тестовый класс в общем модуле не может найти класс, который он тестирует. Это ошибка при попытке запустить compileTestKotlin2Js
:
> Task :Lib-js:classes
e: <location>\Lib\Lib-common\src\test\kotlin\mypackage\ClientTest.kt: (3, 45): Unresolved reference: Client
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':Lib-js:compileTestKotlin2Js'.
> Compilation error. See log for more details