0

我有一个相当标准的 kotlin 多平台 (mpp) build.gradle.kts,它使用应用程序插件和com.github.johnrengelman.shadow

我成功创建了一个java -jar可执行的胖罐子:

application {
    mainClass.set(theMainClass)
}

tasks {
    val shadowCreate by creating(com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar::class) {
        manifest { attributes["Main-Class"] = theMainClass }
        archiveClassifier.set("fat")
        mergeServiceFiles()
        from(kotlin.jvm().compilations.getByName("main").output)
        configurations = mutableListOf(kotlin.jvm().compilations.getByName("main").compileDependencyFiles as Configuration)
    }
    val build by existing {
        dependsOn(shadowCreate)
    }
}

但现在我在如何让应用程序gradle run任务分别让影子gradle runShadow任务正确执行而苦苦挣扎。

有人有什么想法(kotlindsl)吗?

4

1 回答 1

1

我正在使用以下内容:

tasks.named<JavaExec>("run") {
    classpath += objects.fileCollection().from(
        tasks.named("compileKotlinJvm"),
        configurations.named("jvmRuntimeClasspath")
    )
}
于 2021-07-31T13:18:08.333 回答