Ich verwende Gradle mit Kotlin-DSL, konnte jedoch keine Möglichkeit finden, eine ausführbare JAR-Datei zu generieren. Daher werde ich sie zur Erinnerung aufschreiben.
build.gradle.kts
plugins {
application
}
dependencies {
//Um die abhängigen Bibliotheken in ein Glas zu packen'compile'Muss in beschrieben werden
// Use the Kotlin JDK 8 standard library.
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
// Use the Kotlin test library.
testCompile("org.jetbrains.kotlin:kotlin-test")
// Use the Kotlin JUnit integration.
testCompile("org.jetbrains.kotlin:kotlin-test-junit")
}
application {
// Define the main class for the application
mainClassName = "com.example.MainKt"
}
// 'gradle jar'Definieren Sie eine Aufgabe, die Sie verwenden können
val jar by tasks.getting(Jar::class) {
manifest {
attributes["Main-Class"] = "com.example.MainKt"
}
from(
configurations.compile.get().map {
if (it.isDirectory) it else zipTree(it)
}
)
exclude("META-INF/*.RSA", "META-INF/*.SF", "META-INF/*.DSA")
}
Ich kann viele groovige Artikel finden ...
[11/4 Nachschrift] Obwohl es vom Zweck dieses Artikels abweicht, werde ich auch eine Methode schreiben, um ein Laufzeitargument zum Zeitpunkt von "./gradlew run" anzugeben.
build.gradle.kts
import kotlin.text.Regex
val run by tasks.getting(JavaExec::class) {
if (project.hasProperty("args")) {
args = (project.property("args") as String).split(Regex("\\s+))
}
}
Zur Laufzeit
./gradlew run -Pargs="hoge fuga piyo ..."
Beachten Sie, dass die Vervollständigung für Argumente nicht funktioniert
Recommended Posts