I've got a simple project in Gradle 4.6 and would like to make an executable JAR of it. I've tried shadow
, gradle-fatjar-plugin
, gradle-one-jar
, spring-boot-gradle-plugin
plugins but neither of them adds my dependencies declared as implementation
(I don't have any compile
ones). It works with compile
e.g. for gradle-one-jar
plugin but I would like to have implementation
dependencies.
You can use the following code.
jar {
manifest {
attributes(
'Main-Class': 'com.package.YourClass'
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Be sure to replace com.package.YourClass
with the fully qualified class name containing static void main( String args[] )
.
This will pack the runtime dependencies. Check the docs if you need more info.