我不知道如何在带有kotlin DSL的gradle构建中使用shadow插件。所有文档都使用groovy dsl。
这是build.gradle.kts的内容:
import groovy.lang.GroovyObject
import org.gradle.jvm.tasks.Jar
plugins {
// Apply the Kotlin JVM plugin to add support for Kotlin.
id("org.jetbrains.kotlin.jvm") version "1.4.10"
id("com.github.johnrengelman.shadow") version "6.1.0"
application
}
allprojects {
repositories {
// Use jcenter for resolving dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
}
group = "com.example"
version = "1.0-SNAPSHOT"
}
dependencies {
// Align versions of all Kotlin components
implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
// Use the Kotlin JDK 8 standard library.
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
}
application {
mainClass.set("com.example.MainKt")
}
tasks.withType<Jar> {
manifest {
attributes(
mapOf(
"ImplementationTitle" to project.name,
"Implementation-Version" to project.version)
)
}
}
这是src/main/kotlin/com/example/main.kt
的内容
package com.example
fun main() {
println("Hello world")
}
但是当我尝试进行 gradle 构建
时,我收到此错误:
A problem was found with the configuration of task ':shadowJar' (type 'ShadowJar').
> No value has been specified for property 'mainClassName'.
我认为这很奇怪,因为我已经在Application
参数中输入了应用程序主类。
我试着加上这个:
tasks.withType<ShadowJar>() {
mainClassName = "com.example.MainKt"
}
但是当我尝试使用此选项构建时,它抱怨它找不到ShadowJar
类型。
Line 22: tasks.withType<ShadowJar>() {
^ Unresolved reference: ShadowJar
我到底做错了什么?
我建议在您的简单情况下配置默认的< code>shadowJar和< code>jar任务(不是所有< code>ShadowJar和< code>Jar类型的任务,因为您没有创建其他实例)。
kotlin prettyprint-override">tasks {
jar {
manifest {
attributes(
mapOf(
"Main-Class" to "com.example.MainKt", //will make your jar (produced by jar task) runnable
"ImplementationTitle" to project.name,
"Implementation-Version" to project.version)
)
}
}
shadowJar {
manifest.inheritFrom(jar.get().manifest) //will make your shadowJar (produced by jar task) runnable
}
}
application {
mainClassName = "com.example.MainKt" //will make run & runShadow tasks work. Have no idea why it can't take main class from jar/shadowJar manifests
}
问题是我试图将<code>mainClassName
application {
val name = "com.cognite.ingestionservice.MainKt"
mainClass.set(name)
// Required by ShadowJar.
mainClassName = name
}
mainClassName
属性已弃用,但从 6.1.0 版开始,ShadowJar 仍然需要它。
main类。set()
在添加<code>mainClassName
如https://cloud . Google . com/app engine/docs/standard/Java/tools/Gradle-reference上所述,AppEngine Gradle插件提供如下配置: 使用 时,这样的配置应该是什么样子? 我正在查看AppEngine任务,但不明白如何将其连接到适当的Kotlin DSL设置。 编辑 当简单地将上述块添加到<code>buil
我一直在尝试使用Maven Shade插件获取jar,但仍然没有成功。 这是我的项目结构: 模块1(pom.xml): 模块2(pom.xml): 主模块(pom.xml): 根据这段代码,我得到了2个jar文件(Module1-version.jar和Module2-version.jar)。但这不是我想要的。我希望得到1个jar文件(MainModule-version.jar),它将包含另一
问题内容: Jenkins(Hudson)具有StarTeam插件。如何正确配置? 我已经安装了此插件,但是在构建项目时出现此错误: java.lang.NoClassDefFoundError:com / starbase / starteam / Folder 机器是Windows Server2008。我在文件夹中安装了StarTeam SDK 。 问题答案: 在插件文档页面上有一个提示:
新的Android gradle插件(0.7)似乎包括了对NDK的新支持,但在文档中几乎没有提到它(我找到的唯一参考是一个名为< code>ndkSanAngeles的测试)。 看起来gradle正在寻找NDK,我已经将其包含在PATH中。然而,构建项目失败 < li >哪里出错:任务执行失败':ogl tests:compileDefaultFlavorDebugNdk '。NDK未配置 如何在
我的EC2 Ubuntu20.04实例上安装了Jenkins 2.332.3,我正在尝试使用gmail配置电子邮件通知。 我安装了电子邮件扩展插件2.88 扩展电子邮件通知: 电子邮件通知: 我无法再为谷歌/gmail帐户启用“安全性较低的应用访问”,因为谷歌不再提供此设置。而且我没有为谷歌/ gmail帐户启用2FA。 当我选择“测试配置”时,我会收到以下错误: 发送电子邮件失败 javax.m
我有一个多模块项目,所有模块都有一个公共的父pom和一个聚合器/构建pom。我试图使用maven版本插件来更新/设置我所有模块的版本,但它一直跳过子模块。 项目布局:-通用/pom.xml(build pom)-通用/Superpom/pom.xml(父pom)-模块1/pom.xml(模块1 pom)-模块2/pom.xml(模块2 pom) 普通/聚甲醛。xml: 我尝试将插件添加到构建pom