/
AnalyzeDependenciesPlugin.groovy
46 lines (44 loc) · 1.76 KB
/
AnalyzeDependenciesPlugin.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package ca.cutterslade.gradle.analyze
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.SourceSet
class AnalyzeDependenciesPlugin implements Plugin<Project> {
@Override
void apply(final Project project) {
project.configurations.create('permitUnusedDeclared')
project.configurations.create('permitTestUnusedDeclared')
project.task('analyzeDependencies')
if (project.tasks['classes']) {
project.task(dependsOn: 'classes', type: AnalyzeDependenciesTask, 'analyzeClassesDependencies') {
require = [
project.configurations.compile,
project.configurations.findByName('compileOnly'),
project.configurations.findByName('provided')
]
allowedToDeclare = [
project.configurations.permitUnusedDeclared
]
classesDir = project.sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).output.classesDir
}
project.analyzeDependencies.dependsOn('analyzeClassesDependencies')
}
if (project.tasks['testClasses']) {
project.task(dependsOn: 'testClasses', type: AnalyzeDependenciesTask, 'analyzeTestClassesDependencies') {
require = [
project.configurations.testCompile,
project.configurations.findByName('testCompileOnly')
]
allowedToUse = [
project.configurations.compile,
project.configurations.findByName('provided')
]
allowedToDeclare = [
project.configurations.permitTestUnusedDeclared
]
classesDir = project.sourceSets.getByName(SourceSet.TEST_SOURCE_SET_NAME).output.classesDir
}
project.analyzeDependencies.dependsOn('analyzeTestClassesDependencies')
}
project.check.dependsOn('analyzeDependencies')
}
}