我主要从事 DevOps 工作。我正在为一个团队设置 Jenkins。他们有一个 Kotlin 项目,他们正在本地机器上使用 Gradle 进行构建。我从未使用过 Kotlin 或 Gradle,但我使用过 Java。
代码会为他们编译。他们使用 shadowjar 插件,因此他们创建了一个 uberjar。我只需要在我为他们设置的新 Jenkins 服务器上运行它即可。
如果我通过 ssh 连接到 Jenkins 服务器(我刚刚使用 Terraform 设置的全新 AWS EC2)并且我使用 git clone 来克隆 repo(只是为了调试在此服务器上构建所需的内容),我可以这样做:
gradle build
我得到:
:buildEnvironment
------------------------------------------------------------
Root project
------------------------------------------------------------
classpath
No dependencies
BUILD SUCCESSFUL
Total time: 0.742 secs
所以我想也许它想让我设置类路径?类路径应该是什么?
这个文件:
cat build.gradle.kts
看起来相当完整,并且似乎拥有一切:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
plugins {
application
id ("org.jetbrains.kotlin.jvm") version "1.3.10"
id("com.github.johnrengelman.shadow") version "4.0.3"
}
group = "com.sugar"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
jcenter()
maven("https://kotlin.bintray.com/kotlinx")
}
dependencies {
compile("org.jetbrains.exposed:exposed:0.11.2")
compile("org.jetbrains.kotlin:kotlin-reflect:1.3.10")
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
compile("org.apache.kafka:kafka-clients:2.1.0")
compile("org.postgresql", "postgresql", "42.2.5")
implementation("com.github.ajalt:clikt:1.5.0")
implementation("com.google.firebase:firebase-admin:6.5.0")
implementation("com.squareup.moshi:moshi:1.8.0")
implementation("com.squareup.moshi:moshi-kotlin:1.8.0")
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
application {
mainClassName = "bees.BeesKt"
}
tasks.withType<ShadowJar> {
baseName = "bees.fat"
classifier = ""
version = ""
}
我确实读过像这样的安装指南:
https://spring.io/guides/gs/gradle/#scratch
但是它们都很长并且没有回答我的任何基本问题。
欢迎任何帮助!