[JAVA] Gradle + Kotlin-Glas mit DSL generieren

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

Gradle + Kotlin-Glas mit DSL generieren
Verwenden Sie ProGuard mit Gradle
Integrationstest mit Gradle
Installieren Sie Gradle auf ubuntu16.04
Datenkern beginnend mit Gradle
Verwenden Sie WebJars mit Gradle
Beginnen Sie mit Gradle
Verwenden Sie jlink mit gradle
Erstellen Sie mit Gradle ein Java-Multiprojekt
Lombok arbeitet nicht mit Gradle5
Generieren Sie in Gradle 4.9 eine einzelne ausführbare JAR-Datei mit abhängigen Bibliotheken
Verwenden Sie log4j2 mit YAML + Gradle
Hallo Welt mit SpringBoot / Gradle
Erstellen eines Java-Projekts mit Gradle
Ich habe versucht, JOOQ mit Gradle zu verwenden
Ausgabe Testabdeckung mit Klee + Gradle
Ich kann Lombok nicht mit Gradle installieren.
Versuchen Sie es mit Redis mit Java (jar)
Erstellen Sie mit Gradle eine ausführbare JAR für mehrere Projekte
Mache fettes Glas mit Minecraft Modding
Entwickeln Sie die Verarbeitung mit IntelliJ + Kotlin + Gradle
Server mit Spring Gradle ausführbar So erstellen Sie JAR und WAR