When a task or configuration closure is too project-specific for the allprojects
property closure in the root build.gradle
script, it should be added to a sub-module’s build.gradle
file instead.
All sub-modules must define their own project location along with any project compile dependencies in the build.gradle
file. For example, the CommerceAccelerator/Applications/B2CStore/Base
project has a compile dependency on the CommerceAccelerator/Base
module:
project(":Applications:B2CStore:Base") { defaultTasks "all"; description = "Project that extends all of the core CSA/Base functionality." dependencies { compile project(":Base") testCompile( files("${installationProjectPath}/src/test/java"), ) } }
For sub-modules that have WAR files, the build.gradle
file should also extend the buildWar
task to provide application-specific configuration for assembling the application’s WAR file. For example, the CommerceAccelerator/Applications/B2CStore
module’s build.gradle
file modifies the buildWar
task so that it copies the contents of the CommerceAcclerator/Applications/B2CStore/src/main/web-app
directory into a new store.war
directory and then copies the relevant jars from the Oracle Platform to the store.war/WEB-INF/lib
directory.
The defaultTasks
statement specifies that, if you run the gradle
command for this module without specifying a particular task, the gradle all
task will run by default.