Example of jatJar task using Gradle Kotlin DSL:
val mainClass = "com.github.daggerok.Main" // replace it!
tasks {
register("fatJar", Jar::class.java) {
archiveClassifier.set("all")
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes("Main-Class" to mainClass)
}
from(configurations.runtimeClasspath.get()
.onEach { println("add from dependencies: ${it.name}") }
.map { if (it.isDirectory) it else zipTree(it) })
val sourcesMain = sourceSets.main.get()
sourcesMain.allSource.forEach { println("add from sources: ${it.name}") }
from(sourcesMain.output)
}
}
@kavithareddyedula you can pass environment variables like so
unix systems:
windows:
set ENV=myvalue123 gradlew runFatJar
but ENV variable itself should be used on application
run
, notbuild
so when you will be running app you should be doing same:unix:
ENV=myvalue123 java -jar ./build/libs/*.jar
windows: