Mercurial > public > gradleplugins
comparison src/main/groovy/org/ssdt_ohio/gradle/plugins/UserDocPlugin.groovy @ 13:a628135958e7
USASR-1307: inititial userdoc plugin/task to produce customizable groovy doc
author | Dave Smith <smith@nwoca.org> |
---|---|
date | Tue, 10 Dec 2013 22:53:57 +0000 |
parents | |
children | e3c55e83c9a4 |
comparison
equal
deleted
inserted
replaced
12:0a2819478262 | 13:a628135958e7 |
---|---|
1 package org.ssdt_ohio.gradle.plugins | |
2 | |
3 import org.gradle.api.Plugin | |
4 import org.gradle.api.Project | |
5 import org.gradle.api.internal.plugins.DslObject | |
6 import org.gradle.api.plugins.GroovyPlugin | |
7 import org.gradle.api.plugins.JavaBasePlugin | |
8 import org.gradle.api.plugins.JavaPluginConvention | |
9 import org.gradle.api.tasks.GroovyRuntime | |
10 import org.gradle.api.tasks.GroovySourceSet | |
11 import org.gradle.api.tasks.SourceSet | |
12 import org.ssdt_ohio.gradle.tasks.UserDoc | |
13 | |
14 | |
15 class UserDocPlugin implements Plugin<Project> { | |
16 | |
17 | |
18 private static final String USERDOC_TASK_NAME = 'userdoc' | |
19 | |
20 @Override | |
21 void apply(Project project) { | |
22 | |
23 project.getPlugins().apply(GroovyPlugin.class) | |
24 configureUserdoc(project) | |
25 | |
26 } | |
27 | |
28 private void configureUserdoc(final Project project) { | |
29 UserDoc userDoc = project.getTasks().create(USERDOC_TASK_NAME, UserDoc.class); | |
30 userDoc.setDescription("Generates UserDoc API documentation for the main source code."); | |
31 userDoc.setGroup(JavaBasePlugin.DOCUMENTATION_GROUP); | |
32 | |
33 JavaPluginConvention convention = project.getConvention().getPlugin(JavaPluginConvention.class); | |
34 SourceSet sourceSet = convention.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME); | |
35 userDoc.setClasspath(sourceSet.getOutput().plus(sourceSet.getCompileClasspath())) | |
36 | |
37 | |
38 GroovySourceSet groovySourceSet = new DslObject(sourceSet).getConvention().getPlugin(GroovySourceSet.class); | |
39 println "srcdirs: " + groovySourceSet.getGroovy().getSrcDirs() | |
40 userDoc.setSource(groovySourceSet.getGroovy()); | |
41 | |
42 userDoc.setDestinationDir(new File(project.buildDir, "docs/userdoc")) | |
43 | |
44 userDoc.setGroovyClasspath(new GroovyRuntime(project).inferGroovyClasspath(project.configurations.compile)) | |
45 | |
46 } | |
47 | |
48 } |