gradle - kotlin multiplatform shadow fat jar 和 runShadow 任务?
问题描述
我有一个相当标准的 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)吗?
解决方案
我正在使用以下内容:
tasks.named<JavaExec>("run") {
classpath += objects.fileCollection().from(
tasks.named("compileKotlinJvm"),
configurations.named("jvmRuntimeClasspath")
)
}
推荐阅读
- django - 如何仅在视图集中的 django REST 中的 PUT 请求上设置身份验证和权限?
- c# - 空单元格未设置为 DateTime 类型
- java - 如何修复 ArrayIndexOutOfBounds 异常:ArrayDeque 中的 -1
- javascript - 如何在文档点击功能中设置 keydown 事件?
- c# - Activator.CreateInstance 在一种方法中工作,但在另一种方法中抛出 AmbiguousMatchException
- android - Firebase - 未找到 GetTokenResult、getExpirationTimestamp()
- java - 为什么 Google App Engine MySQL JDBC URL 无法连接到数据库?
- php - 在 Symfony 3.2 网站上在线添加捆绑包
- java - 拉伸屏幕尺寸时最左角的位置圆 - JavaFX
- java - 带有 Java 套接字的 HTTP 客户端