@@ -81,26 +81,29 @@ allprojects {
8181 }
8282}
8383
84- subprojects {
85- plugins. withId(" io.gitlab.arturbosch.detekt" ) {
86- afterEvaluate {
87- def configureDetektTask = { task ->
88- // Only analyze main source sets
89- task. source = files(
90- " $projectDir /src/main/java" ,
91- " $projectDir /src/main/kotlin"
92- )
93- // Exclude all test-related files and directories
94- task. exclude " **/test/**" , " **/androidTest/**" , " **/src/test/**" , " **/src/androidTest/**" ,
95- " **/*Test.kt" , " **/*Tests.kt" , " **/*Spec.kt" ,
96- " **/*Test.java" , " **/*Tests.java" , " **/*Spec.java"
84+ // Aggregate Detekt tasks at the root so CI can call them once
85+ gradle. projectsEvaluated {
86+ def moduleDetektTasks = []
87+ def moduleDetektBaselineTasks = []
9788
98- // Enable type resolution to catch !! operator
99- task . jvmTarget = " 1.8 "
100- }
101-
102- tasks. withType( io.gitlab.arturbosch.detekt.Detekt ) . configureEach(configureDetektTask )
103- tasks . withType( io.gitlab.arturbosch.detekt.DetektCreateBaselineTask ) . configureEach(configureDetektTask)
89+ subprojects . each { p ->
90+ if (p . plugins . hasPlugin( ' io.gitlab.arturbosch.detekt ' )) {
91+ def detektTask = p . tasks . findByName( ' detekt ' )
92+ if (detektTask != null ) moduleDetektTasks << detektTask . path
93+ def detektBaselineTask = p . tasks. findByName( ' detektBaseline ' )
94+ if (detektBaselineTask != null ) moduleDetektBaselineTasks << detektBaselineTask . path
10495 }
10596 }
97+
98+ tasks. register(' detekt' ) {
99+ if (! moduleDetektTasks. isEmpty()) dependsOn moduleDetektTasks
100+ group = ' verification'
101+ description = ' Runs Detekt on all modules.'
102+ }
103+
104+ tasks. register(' detektBaseline' ) {
105+ if (! moduleDetektBaselineTasks. isEmpty()) dependsOn moduleDetektBaselineTasks
106+ group = ' verification'
107+ description = ' Creates/updates Detekt baselines for all modules.'
108+ }
106109}
0 commit comments