Gradle Goodness: Skip Building Project Dependencies
Join the DZone community and get the full member experience.
Join For FreeIf we use Gradle in a multi-module project we can define project dependencies between modules. Gradle uses the information from the project dependencies to determine which tasks need to be run. For example if module B depends on module A and we want to build module B, Gradle will also build module A for us, because module B depends on it. But if we know for sure that module A is up to date and has not changed, we can also instruct Gradle to skip building module A, when we build module B.
Let's start with the following module structure, where each module depends on the module above it. So module services depends on common and module web depends on services:
.
├── common
├── services
└── web
When we want to build the service module we go to the services directory and execute the build
task and we get the following output:
$ gradle build :common:compileJava :common:processResources :common:classes :common:jar :services:compileJava :services:processResources :services:classes :services:jar :services:assemble :services:compileTestJava :services:processTestResources :services:testClasses :services:test :services:check :services:build BUILD SUCCESSFUL Total time: 8.013 secs
-a
or--no-rebuild
to tell Gradle to skip project dependencies.When we run the build
task from the services directory using the command line option -a
we get the following output:
$ gradle -a build :services:compileJava :services:processResources :services:classes :services:jar :services:assemble :services:compileTestJava :services:processTestResources :services:testClasses :services:test :services:check :services:build BUILD SUCCESSFUL Total time: 5.626 secs
This time only the services module is build, which also speeds up the build proces. Still this should only be used if we know ourselves the project dependencies are up to date.
Written with Gradle 2.2.1.
Published at DZone with permission of Hubert Klein Ikkink, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments