@@ -44,18 +44,16 @@ class GenerationPlugin implements Plugin<Project> {
44
44
protected static boolean addJacoco (final Project subProject , final JunitJacocoExtension extension , JacocoMerge mergeTask , JacocoReport mergedReportTask ) {
45
45
if (! shouldIgnore(subProject, extension)) {
46
46
if (isAndroidProject(subProject)) {
47
- addJacocoAndroid(subProject, extension, mergeTask, mergedReportTask)
48
- return true
47
+ return addJacocoAndroid(subProject, extension, mergeTask, mergedReportTask)
49
48
} else if (isJavaProject(subProject)) {
50
- addJacocoJava(subProject, extension, mergeTask, mergedReportTask)
51
- return true
49
+ return addJacocoJava(subProject, extension, mergeTask, mergedReportTask)
52
50
}
53
51
}
54
52
55
53
return false
56
54
}
57
55
58
- private static void addJacocoJava (final Project subProject , final JunitJacocoExtension extension , JacocoMerge mergeTask , JacocoReport mergedReportTask ) {
56
+ private static boolean addJacocoJava (final Project subProject , final JunitJacocoExtension extension , JacocoMerge mergeTask , JacocoReport mergedReportTask ) {
59
57
subProject. plugins. apply(' jacoco' )
60
58
61
59
subProject. jacoco {
@@ -103,9 +101,10 @@ class GenerationPlugin implements Plugin<Project> {
103
101
}
104
102
105
103
subProject. check. dependsOn ' jacocoTestReport'
104
+ return true
106
105
}
107
106
108
- private static void addJacocoAndroid (final Project subProject , final JunitJacocoExtension extension , JacocoMerge mergeTask , JacocoReport mergedReportTask ) {
107
+ private static boolean addJacocoAndroid (final Project subProject , final JunitJacocoExtension extension , JacocoMerge mergeTask , JacocoReport mergedReportTask ) {
109
108
subProject. plugins. apply(' jacoco' )
110
109
111
110
subProject. jacoco {
@@ -119,8 +118,12 @@ class GenerationPlugin implements Plugin<Project> {
119
118
Collection<BaseVariant > variants = []
120
119
if (isAndroidApplication(subProject)) {
121
120
variants = subProject. android. applicationVariants
122
- } else {
121
+ } else if (isAndroidLibrary(subProject) || isAndroidFeature(subProject)) {
122
+ // FeatureExtension extends LibraryExtension
123
123
variants = subProject. android. libraryVariants
124
+ } else {
125
+ // test plugin or something else
126
+ return false
124
127
}
125
128
126
129
variants. all { variant ->
@@ -213,6 +216,8 @@ class GenerationPlugin implements Plugin<Project> {
213
216
214
217
subProject. check. dependsOn " ${ taskName} "
215
218
}
219
+
220
+ return true
216
221
}
217
222
218
223
private static addJacocoMergeToRootProject (final Project project , final JunitJacocoExtension extension ) {
@@ -316,6 +321,14 @@ class GenerationPlugin implements Plugin<Project> {
316
321
return project. plugins. hasPlugin(' com.android.application' )
317
322
}
318
323
324
+ protected static boolean isAndroidLibrary (final Project project ) {
325
+ return project. plugins. hasPlugin(' com.android.library' )
326
+ }
327
+
328
+ protected static boolean isAndroidFeature (final Project project ) {
329
+ return project. plugins. hasPlugin(' com.android.feature' )
330
+ }
331
+
319
332
private static boolean shouldIgnore (final Project project , final JunitJacocoExtension extension ) {
320
333
if (extension. ignoreProjects?. contains(project. name) || extension. ignoreProjects?. contains(project. path)) {
321
334
// Regex could be slower.
0 commit comments