Configuración de un proyecto multiplataforma

teniendo en count que Kotlin 1.2 presentó kotlin-platform-common , estoy intentando build mi primer file .class común, así que hice lo siguiente:

main.kt :

 package hello fun main() { println("kotlin!") } 

gradle.build :

 group 'h' version 'prn' buildscript { ext.kotlin_version = '1.2.0' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin-platform-common' repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version" } sourceSets { main.kotlin.srcDirs += 'src/kotlin' main.resources.srcDirs += 'src/resources' } jar { manifest { attributes 'Main-Class': 'hello.MainKt' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } 

Luego gradle build

P1: ¿No pude encontrar ningún file .class generado? cómo generarlo y dónde debería encontrarlo?

P2- Obtuve un file .jar generado, pero una vez que intenté ejecutarlo, recibí un error:

Error: no se pudo encontrar o cargar la class principal hello.MainKt

Intenté ejecutarlo usando la opción de abajo 2, pero obtuve el mismo error para bot:

Opción 1:

 kotlin -cp <filename>.jar hello.MainKt 

Opcion 2:

 java -jar <filename>.jar 

Estructura del proyecto, y los errores son como en esta foto a continuación:

enter image description here

Con Kotlin 1.2, los modules comunes no generan binarys (como files .class), solo files de metadatos. Esto es cierto incluso si no utiliza la palabra key expect cualquier lugar .

Entonces debes crear otro module que incluya algo como esto:

 apply plugin: 'kotlin-platform-jvm' 

Los modules JVM también necesitarán una input expectedBy en dependencies para su module común. Además, probablemente querrás un module JS correspondiente, por supuesto.

Probablemente sea mejor dejar que IntelliJ cree todo el proyecto multiplataforma para usted y luego editar los files de Gradle para que se adapte, pero esta página enumera los pasos manuales: https://kotlinlang.org/docs/reference/multiplatform.html#setting-up- un proyecto multiplataforma