64.8 Understanding how the Gradle plugin works
When spring-boot
is applied to your Gradle project a default task named bootRepackage
is created automatically. The bootRepackage
task depends on Gradle assemble
task, and when executed, it tries to find all jar artifacts whose qualifier is empty (i.e. tests and sources jars are automatically skipped).
Due to the fact that bootRepackage
finds 'all' created jar artifacts, the order of Gradle task execution is important. Most projects only create a single jar file, so usually this is not an issue; however, if you are planning to create a more complex project setup, with custom Jar
and BootRepackage
tasks, there are few tweaks to consider.
If you are 'just' creating custom jar files from your project you can simply disable default jar
and bootRepackage
tasks:
jar.enabled = false bootRepackage.enabled = false
Another option is to instruct the default bootRepackage
task to only work with a default jar
task.
bootRepackage.withJarTask = jar
If you have a default project setup where the main jar file is created and repackaged, 'and' you still want to create additional custom jars, you can combine your custom repackage tasks together and use dependsOn
so that the bootJars
task will run after the default bootRepackage
task is executed:
task bootJars bootJars.dependsOn = [clientBoot1,clientBoot2,clientBoot3] build.dependsOn(bootJars)
All the above tweaks are usually used to avoid situations where an already created boot jar is repackaged again. Repackaging an existing boot jar will not break anything, but you may find that it includes unnecessary dependencies.