我最近开始了一个基于jetbrains提供的kotlin多平台模板的新项目,结果我很不高兴的是它没有为盒子右侧的终端提供版本。所以我尝试在
terminal
和 server
旁边添加 composeApp
模块。该模块可以工作,但就目前而言,它是为 java 环境而设计的,想要更改它比我预期的要困难。
如何修改项目以将 jvm、Dmg、Msi 和 Deb 目标添加到
terminal
模块。对于我的所有尝试,我设法通过向终端添加多平台插件来添加它们build.gradle.kts
,但后来我的依赖项没有出现在项目中,并且我正在使用shared
代码,因此该方法被证明很困难。
build.gradle.kts (:terminal)
plugins {
alias(libs.plugins.kotlinMultiplatform)
application
}
group = "pl.game.terminal"
version = "unspecified"
repositories {
mavenCentral()
}
dependencies {
implementation(projects.shared)
testImplementation(libs.kotlin.test.junit)
}
tasks.test {
useJUnitPlatform()
}
kotlin {
jvm()
mingwX64 {
binaries {
executable()
}
}
}
application {
mainClass = "pl.game.terminal.MainKt"
}
整个项目都可以在这里找到,所以你可以自己检查一下。此链接提供对提交的 github 访问,其中存在有效的 java 目标,但未实现多平台。
您应该包含一个已添加本机目标的分支。如果您只将它们添加到
terminal
,那么这就是您的问题。您的依赖项还需要具有平台目标。但是,请勿添加 binaries
部分。
因此,对于上述情况,共享配置将如下所示:
kotlin {
@OptIn(ExperimentalWasmDsl::class)
wasmJs {
// Wasm stuff
}
androidTarget {
// Yada yada
}
iosX64()
iosArm64()
iosSimulatorArm64()
jvm()
mingwX64() // <- You need this
sourceSets {
commonMain.dependencies {
// put your Multiplatform dependencies here
}
}
}