Kotlin 建立多平台项目
考虑到Kotlin 建立多平台项目,kotlin,kotlin-multiplatform,Kotlin,Kotlin Multiplatform,考虑到Kotlin 1.2引入的Kotlin平台通用我正在尝试构建我的第一个通用.class文件,因此我做了以下工作: main.kt: package hello fun main() { println("kotlin!") } gradle.build: group 'h' version 'prn' buildscript { ext.kotlin_version = '1.2.0' repositories { mavenCentral
Kotlin 1.2
引入的Kotlin平台通用
我正在尝试构建我的第一个通用.class
文件,因此我做了以下工作:
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) } }
}
然后我运行gradlebuild
Q1-我找不到任何生成的.class
文件?如何生成它,我应该在哪里找到它
Q2-我生成了一个.jar
文件,但一旦我尝试运行它,就出现了一个错误:
错误:无法找到或加载主类hello.MainKt
我尝试使用下面的2个选项运行它,但在bot中遇到了相同的错误:
备选案文1:
kotlin -cp <filename>.jar hello.MainKt
kotlin-cp.jar hello.MainKt
备选案文2:
java -jar <filename>.jar
java-jar.jar
项目结构和错误如下图所示:
在Kotlin 1.2中,通用模块不生成二进制文件(如.class文件),只生成元数据文件。这是正确的,即使您没有在任何地方使用
expect
关键字
因此,您必须创建另一个模块,其中包括以下内容:
apply plugin: 'kotlin-platform-jvm'
JVM模块还需要一个expectedBy
条目,该条目位于dependencies
中,用于您的公共模块。另外,您可能需要一个相应的JS模块
最好让IntelliJ为您创建整个多平台项目,然后编辑Gradle文件以适应,但本页列出了手动步骤:这是一个无效的主方法signature@1blustone我得到了同样的结果,尽管我将其更改为
funmain(args:Array){println(“kotlin!”)}