我对如何使用Gradle制作胖罐做了很多研究。但是,我无法弄清楚如何使用Kotlin DSL和插件。我有这个代码:
plugins {
application
id("org.openjfx.javafxplugin") version "0.0.9"
id("com.github.johnrengelman.shadow") version "6.1.0"
}
repositories {
mavenCentral()
}
dependencies {
implementation("javax.vecmath", "vecmath", "1.5.2")
implementation("org.apache.commons", "commons-csv", "1.8")
}
application {
mainModule.set("de.weisbrja")
mainClass.set("de.weisbrja.App")
}
javafx {
modules("javafx.controls")
}
modularity.disableEffectiveArgumentsAdjustment()
但是我不知道如何为胖罐子清单指定主类。我遵循的教程是这样做的:
jar {
manifest {
attributes "Main-Class": "com.baeldung.fatjar.Application"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
但这是Groovy DSL,而不是Kotlin DSL,我还不太熟悉Kotlin的DSL,所以我不知道如何将其转换为Kotlin DSL。非常感谢你的帮助。
试试这个在kotlin dsl(build.gradle.kts)中的香草解决方案
dependencies {
implementation(group="org.mycomp",name="foo",version="1.0")
}
tasks {
jar {
//package org.mycomp.foo inside the .jar file
from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) })
}
}
或者,您可以使用shadowJar插件
plugins {
id("com.github.johnrengelman.shadow") version "7.0.0"
}
然后运行/gradlew:shadowJar
我使用的是Gradle 5.5,我有一个基于Groovy的构建脚本,我正试图将其迁移到Kotlin DSL。任务包含将所有依赖项复制到jar文件的典型行: 我找不到一种方法来把这一行翻译成Kotlin DSL。 让我给你一些背景知识。这是我最初基于Groovy的构建脚本: 这是我基于静态编程语言的构建脚本。它运行良好,除了一行:
我希望Fabric停止在每个构建上生成UUID。过去适用于Gradle的Groovy DSL的东西不适用于较新的静态编程语言DSL。如何使用静态编程语言DSL实现我的目标? (Gradle版本4.10.2,Fabric 1.25.4) 根据Fabric的留档,您可以将以下内容添加到应用的构建脚本中 这是可行的。它防止Fabric在每个调试版本上生成UUID。但是,如果我将构建脚本转换为Kotlin
我试图用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
我希望函数位于类中(不污染全局名称空间),但可以静态访问(从不创建它们所在的对象)。提议的解决办法: 这是一个好的解决方案,还是不可避免地会创建一个对象?我应该使用哪种图案?
我试图在基于静态编程语言的gradle文件中使用以下内容构建一个胖罐子。 但是,胖罐扩展了所有依赖项。我希望将jars按原样包含在/lib目录中,但我无法弄清楚如何实现这一点。 谁能给我一些建议,告诉我如何才能做到这一点? 谢啦