// This adds top-level 'precommit' task. configure(rootProject) { task precommit() { group = 'Precommit' description = "All precommit checks" // Root-level validation tasks. dependsOn ":verifyLocks" dependsOn ":versionsPropsAreSorted" dependsOn ":checkWorkingCopyClean" dependsOn ":validateSourcePatterns" // Solr validation tasks. dependsOn ":solr:validateConfigFileSanity" // Attach all these tasks from all projects that have them. // This uses lazy collections as they may not yet be defined. dependsOn allprojects.collect { prj -> prj.tasks.matching { task -> task.name in [ "forbiddenApisMain", "forbiddenApisTest", "licenses", "javadoc", "rat", ]} } } }