Gradle Application Plugin
External
Internal
Overview
The application plugin facilitates creating an executable JVM application. It bundles all application JARS, transitive dependencies and operating system specific scripts into a TAR or ZIP file, and it also generates the bash and Windows wrapper scripts to run the application with.
Typical Setup
This setup describes configuration of a multi-project build, whose sub-project create various components of the application and the top level project bundles all those in a distributable artifact. The dependencies between the sub-projects must be configured in the corresponding build.gradle files. To build the application artifact, we assume that there's a sub-project that contains the "main()" static method that triggers the execution, that method exists in "io.example.Main" class, and the sub-project in question is named "main".
As such, the top-level project build.gradle should contain the following relevant configuration:
...
apply plugin: 'application'
mainClassName = "io.example.Main"
dependencies {
...
implementation project(':main')
}
Provided that the rest of the dependencies between sub-projects are correctly declared in the corresponding build.gradle files, the execution of
gradle distZip
will compile everything and will create a ./build/distributions/<rootProject.name>.zip file. The file includes the sub-project artifacts, their transitive dependencies, and wrapper scripts for bash and Windows.
For more details about rootProject.name, see:
Properties
mainClassName
mainClassName = 'greeter.Greeter'