sample-apps/java/app/build.gradle.kts (29 lines of code) (raw):
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
id("com.google.example.java-application-conventions")
}
dependencies {
implementation(project(":utilities"))
implementation("ch.qos.logback:logback-classic")
implementation("org.slf4j:slf4j-api")
implementation("org.slf4j:jul-to-slf4j")
}
val mainClassName = "com.google.example.app.App"
application {
// Define the main class for the application.
mainClass.set(mainClassName)
}
/**
* Create a Fat Jar with all dependencies for easier execution
*/
val fatJar = task("fatJar", type = Jar::class) {
dependsOn("compileJava")
archiveClassifier.set("standalone")
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes(Pair("Main-Class", mainClassName))
}
val sourcesMain = sourceSets.main.get()
val contents = configurations.runtimeClasspath.get()
.map { if (it.isDirectory) it else zipTree(it) } + sourcesMain.output
from(contents)
dependsOn(":utilities:jar", ":app:processResources")
}
tasks.build {
dependsOn(fatJar)
}