如何为 Kotlin (Gradle) 构建导入 ShadowJar 插件?
how to import the ShadowJar plugin for Kotlin (Gradle) builds?
构建失败:
thufir@dur:~/NetBeansProjects/kotlin_dsl$
thufir@dur:~/NetBeansProjects/kotlin_dsl$ gradle clean run
> Configure project :
e: /home/thufir/NetBeansProjects/kotlin_dsl/build.gradle.kts:4:12: Unresolved reference: github
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'kotlin_dsl'.
> Could not open cache directory 74ykawxta6db3b2bfk9grjikp (/home/thufir/.gradle/caches/4.3.1/gradle-kotlin-dsl/74ykawxta6db3b2bfk9grjikp).
> Internal error: unable to compile script, see log for details
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
thufir@dur:~/NetBeansProjects/kotlin_dsl$
有问题的导入语句:
thufir@dur:~/NetBeansProjects/kotlin_dsl$
thufir@dur:~/NetBeansProjects/kotlin_dsl$ cat build.gradle.kts
import org.gradle.api.JavaVersion
import org.gradle.kotlin.dsl.*
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
plugins {
application
kotlin("jvm") version "1.1.51"
}
application {
mainClassName = "samples.HelloWorldKt"
}
dependencies {
compile(kotlin("stdlib"))
}
repositories {
jcenter()
}
thufir@dur:~/NetBeansProjects/kotlin_dsl$
删除 the import for Shadow as described 可以得到一个干净的构建和 运行。 Shadow 插件 JAR 如何可供 Kotlin 导入?
Gradle 本身,使用 DSL,创建 Shadow JAR 很好。
换个角度来看:
有一个有效的构建文件。
像这样:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
plugins {
kotlin("jvm") version "1.5.21"
id("com.github.johnrengelman.shadow") version "7.0.0"
}
group = "xxx.yyy"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "11"
}
tasks.withType<ShadowJar> {
archiveFileName.set("app.jar")
}
构建失败:
thufir@dur:~/NetBeansProjects/kotlin_dsl$
thufir@dur:~/NetBeansProjects/kotlin_dsl$ gradle clean run
> Configure project :
e: /home/thufir/NetBeansProjects/kotlin_dsl/build.gradle.kts:4:12: Unresolved reference: github
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'kotlin_dsl'.
> Could not open cache directory 74ykawxta6db3b2bfk9grjikp (/home/thufir/.gradle/caches/4.3.1/gradle-kotlin-dsl/74ykawxta6db3b2bfk9grjikp).
> Internal error: unable to compile script, see log for details
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
thufir@dur:~/NetBeansProjects/kotlin_dsl$
有问题的导入语句:
thufir@dur:~/NetBeansProjects/kotlin_dsl$
thufir@dur:~/NetBeansProjects/kotlin_dsl$ cat build.gradle.kts
import org.gradle.api.JavaVersion
import org.gradle.kotlin.dsl.*
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
plugins {
application
kotlin("jvm") version "1.1.51"
}
application {
mainClassName = "samples.HelloWorldKt"
}
dependencies {
compile(kotlin("stdlib"))
}
repositories {
jcenter()
}
thufir@dur:~/NetBeansProjects/kotlin_dsl$
删除 the import for Shadow as described 可以得到一个干净的构建和 运行。 Shadow 插件 JAR 如何可供 Kotlin 导入?
Gradle 本身,使用 DSL,创建 Shadow JAR 很好。
换个角度来看:
有一个有效的构建文件。
像这样:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
plugins {
kotlin("jvm") version "1.5.21"
id("com.github.johnrengelman.shadow") version "7.0.0"
}
group = "xxx.yyy"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "11"
}
tasks.withType<ShadowJar> {
archiveFileName.set("app.jar")
}