我试图在基于静态编程语言的gradle文件中使用以下内容构建一个胖罐子。
val fatJar = task("fatJar", type = Jar::class) {
baseName = "safescape-lib-${project.name}"
// manifest Main-Class attribute is optional.
// (Used only to provide default main class for executable jar)
from(configurations.runtimeClasspath.map({ if (it.isDirectory) it else zipTree(it) }))
with(tasks["jar"] as CopySpec)
}
tasks {
"build" {
dependsOn(fatJar)
}
}
但是,胖罐扩展了所有依赖项。我希望将jars按原样包含在/lib目录中,但我无法弄清楚如何实现这一点。
谁能给我一些建议,告诉我如何才能做到这一点?
谢啦
如果有人使用kotlin-multiPlatform
插件,配置有点不同。假设JS模块中嵌入JS前端的JVM应用程序:
afterEvaluate {
tasks {
create("jar", Jar::class).apply {
dependsOn("jvmMainClasses", "jsJar")
group = "jar"
manifest {
attributes(
mapOf(
"Implementation-Title" to rootProject.name,
"Implementation-Version" to rootProject.version,
"Timestamp" to System.currentTimeMillis(),
"Main-Class" to mainClassName
)
)
}
val dependencies = configurations["jvmRuntimeClasspath"].filter { it.name.endsWith(".jar") } +
project.tasks["jvmJar"].outputs.files +
project.tasks["jsJar"].outputs.files
dependencies.forEach { from(zipTree(it)) }
into("/lib")
}
}
}
你在规范的< code>map部分使用了< code>zipTree,它的行为与文档一致:它解压不是目录的文件。
如果您想要< code>/lib中的jar,请将您的< code>from替换为:
from(configurations.runtimeClasspath) {
into("lib")
}
我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?
为了描述Gradle构建脚本,我们可以通过< code>build.gradle.kts文件使用Kotlin。在< code>dependencies和build 部分全局定义要使用的Kotlin版本是一个常见的问题(在给定的情况下使用不同的版本是相当罕见的)。 请考虑以下代码 (Gradle 4.3.1): 如您所见,kotlin(在本例中为1.2.30)定义了两次:和,它们通常没有区别。由于D
有可能从Java代码中访问扩展函数吗? 我在静态编程语言文件中定义了扩展函数。 其中MyModel是(生成的)java类。现在,我想在我的普通java代码中访问它: 然而,那是行不通的。IDE无法识别bar()方法,编译失败。 work使用kotlin的静态函数: 通过使用导入com.test.extensions.ExtensionsPackage我的IDE似乎配置正确。 我从kotlin文档中
我使用的是Gradle 5.5,我有一个基于Groovy的构建脚本,我正试图将其迁移到Kotlin DSL。任务包含将所有依赖项复制到jar文件的典型行: 我找不到一种方法来把这一行翻译成Kotlin DSL。 让我给你一些背景知识。这是我最初基于Groovy的构建脚本: 这是我基于静态编程语言的构建脚本。它运行良好,除了一行:
我有一个具有多个依赖项的Java项目,我想使用Kotlin DSL与Gradle一起打包到一个胖罐子中。 当我运行,构建成功,但当我尝试运行它时,它找不到主类: 以下是完整的文件: 以及我的回购协议的链接:https://github.com/darkasphalt/myapp
当使用Java和JUnit 5时,我可以使用如下非静态字段注册扩展: 当我尝试使用Kotlin (1.4.10)时,我似乎无法让它工作。我试过举个例子: 但它失败了: 当我试着运行它的时候。 如果我尝试添加一个< code>@JvmField注释: 它失败,而是出现编译时错误: 我能做的是将它移动到一个同伴对象: 现在它可以工作了。但是我不能在伴随对象中声明,因为构造函数的输入()还不可用。我只是