Build.gradle: Difference between revisions
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
=Multi-Project Configuration= | =Multi-Project Configuration= |
Revision as of 23:37, 19 May 2018
Multi-Project Configuration
allprojects
The allprojects block is used to add configuration items that will apply to all sub-projects, as well as the root project.
allprojects {
repositories {
...
}
}
"allprojects" is a property that contains a list with the current project and all its subprojects underneath it. It can be called with a closure, and the statements of the closure are delegated to the projects.
subprojects
The subprojects block is used to add configuration times for sub-projects only.
subprojects {
...
}
Respond to Build Lifecycle Events
Example of how to respond to project build lifecycle events.
allprojects {
afterEvaluate { project ->
if (project.hasTests) {
println "Adding test task to $project"
project.task('test') {
doLast {
println "running tests for $project"
}
}
}
}
}
gradle.afterProject {project, projectState ->
if (projectState.failure) {
println "Evaluation of $project FAILED"
} else {
println "Evaluation of $project succeeded"
}
}
Respond to Task Lifecycle Events
Examples of how to respond to task lifecycle events.
Task Creation
tasks.whenTaskAdded { task ->
task.ext.srcDir = 'src/main/java'
}
Task Execution
gradle.taskGraph.beforeTask { Task task ->
println "executing $task ..."
}
gradle.taskGraph.afterTask { Task task, TaskState state ->
if (state.failure) {
println "FAILED"
}
else {
println "done"
}
}