Skip to content

Commit 0de590e

Browse files
authored
Merge pull request #139 from /issues/138
Fix Gradle bug: SourceSets added after plugin loading don't get tasks. This closes #138.
2 parents 1a4d414 + 6a9eba9 commit 0de590e

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/main/resources/de/thetaphi/forbiddenapis/gradle/plugin-init.groovy

+10-10
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,16 @@ def extensionProps = CheckForbiddenApisExtension.class.declaredFields.findAll{ f
4343
return Modifier.isPublic(mods) && !f.synthetic && !Modifier.isStatic(mods)
4444
}*.name;
4545

46+
// Create a convenience task for all checks (this does not conflict with extension, as it has higher priority in DSL):
47+
def forbiddenTask = project.tasks.create(FORBIDDEN_APIS_TASK_NAME) {
48+
description = "Runs forbidden-apis checks.";
49+
group = JavaBasePlugin.VERIFICATION_GROUP;
50+
}
51+
4652
// Define our tasks (one for each SourceSet):
47-
def forbiddenTasks = project.sourceSets.collect{ sourceSet ->
53+
project.sourceSets.all{ sourceSet ->
4854
def getSourceSetClassesDirs = { sourceSet.output.hasProperty('classesDirs') ? sourceSet.output.classesDirs : project.files(sourceSet.output.classesDir) }
49-
project.tasks.create(sourceSet.getTaskName(FORBIDDEN_APIS_TASK_NAME, null), CheckForbiddenApis.class) {
55+
project.tasks.create(sourceSet.getTaskName(FORBIDDEN_APIS_TASK_NAME, null), CheckForbiddenApis.class) { task ->
5056
description = "Runs forbidden-apis checks on '${sourceSet.name}' classes.";
5157
conventionMapping.with{
5258
extensionProps.each{ key ->
@@ -60,18 +66,12 @@ def forbiddenTasks = project.sourceSets.collect{ sourceSet ->
6066
project.afterEvaluate{
6167
def sourceSetDirs = getSourceSetClassesDirs().files;
6268
if (classesDirs.any{ sourceSetDirs.contains(it) }) {
63-
dependsOn(sourceSet.output);
69+
task.dependsOn(sourceSet.output);
6470
}
6571
}
72+
forbiddenTask.dependsOn(task);
6673
}
6774
}
6875

69-
// Create a convenience task for all checks (this does not conflict with extension, as it has higher priority in DSL):
70-
def forbiddenTask = project.tasks.create(FORBIDDEN_APIS_TASK_NAME) {
71-
description = "Runs forbidden-apis checks.";
72-
group = JavaBasePlugin.VERIFICATION_GROUP;
73-
dependsOn(forbiddenTasks);
74-
}
75-
7676
// Add our task as dependency to chain
7777
project.tasks[JavaBasePlugin.CHECK_TASK_NAME].dependsOn(forbiddenTask);

0 commit comments

Comments
 (0)