@@ -22,6 +22,7 @@ import org.gradle.api.Project
2222import org.gradle.api.model.ObjectFactory
2323import org.gradle.api.plugins.JavaBasePlugin
2424import org.gradle.api.plugins.JavaPlugin
25+ import org.gradle.api.plugins.JavaPluginExtension
2526import org.gradle.api.tasks.SourceSet
2627import org.gradle.api.tasks.TaskProvider
2728
@@ -45,15 +46,19 @@ class ClojureBasePlugin implements Plugin<Project> {
4546
4647 def repos = project. repositories
4748
48- configureSourceSets(project)
49- configureCompilation(project, extension)
50- configureDocs(project)
51- configureTests(project)
52- configureRun(project)
49+ JavaPluginExtension javaPluginExtension = project. extensions. findByType(JavaPluginExtension )
50+ if (! javaPluginExtension) {
51+ return
52+ }
53+ configureSourceSets(project, javaPluginExtension)
54+ configureCompilation(project, extension, javaPluginExtension)
55+ configureDocs(project, javaPluginExtension)
56+ configureTests(project, javaPluginExtension)
57+ configureRun(project, javaPluginExtension)
5358 }
5459
55- private void configureSourceSets (project ) {
56- project . sourceSets. all { SourceSet sourceSet ->
60+ private void configureSourceSets (project , JavaPluginExtension javaPluginExtension ) {
61+ javaPluginExtension . sourceSets. all { SourceSet sourceSet ->
5762 def clojureSourceSet =
5863 new DefaultClojureSourceSet (sourceSet. name, objectFactory)
5964
@@ -64,9 +69,9 @@ class ClojureBasePlugin implements Plugin<Project> {
6469 }
6570 }
6671
67- private void configureCompilation (Project project , ClojurePluginExtension extension ) {
68- project . sourceSets. all { SourceSet set ->
69- if (set. equals(project . sourceSets. test))
72+ private void configureCompilation (Project project , ClojurePluginExtension extension , JavaPluginExtension javaPluginExtension ) {
73+ javaPluginExtension . sourceSets. all { SourceSet set ->
74+ if (set. equals(javaPluginExtension . sourceSets. test))
7075 return
7176 def compileTaskName = set. getCompileTaskName(" clojure" )
7277 TaskProvider<ClojureCompile > task = project. tasks. register(compileTaskName, ClojureCompile )
@@ -87,13 +92,14 @@ class ClojureBasePlugin implements Plugin<Project> {
8792 }
8893 }
8994
90- private void configureDocs (Project project ) {
91- project . sourceSets. main { SourceSet set ->
95+ private void configureDocs (Project project , JavaPluginExtension javaPluginExtension ) {
96+ javaPluginExtension . sourceSets. main { SourceSet set ->
9297 def docTaskName = set. getTaskName(null , " clojuredoc" )
9398 TaskProvider<ClojureDoc > task = project. tasks. register(docTaskName, ClojureDoc )
9499 task. configure {
95100 from project. file(" src/${ set.name} /clojure" )
96- destinationDir. set(project. file(project. docsDir. path + " /clojuredoc" ))
101+
102+ destinationDir. set(project. file(javaPluginExtension. docsDir. dir(" clojuredoc" )))
97103 classpath. from(
98104 set. compileClasspath
99105 )
@@ -103,15 +109,15 @@ class ClojureBasePlugin implements Plugin<Project> {
103109 }
104110 }
105111
106- private void configureTests (Project project ) {
112+ private void configureTests (Project project , JavaPluginExtension javaPluginExtension ) {
107113 TaskProvider<ClojureTest > clojureTest = project. tasks. register(' clojureTest' , ClojureTest )
108114 clojureTest. configure {
109115 from project. file(" src/test/clojure" )
110116 classpath. from(
111117 project. configurations. testRuntimeClasspath. incoming. files
112118 )
113119 outputDir. set(
114- findOutputDir(project . sourceSets. main)
120+ findOutputDir(javaPluginExtension . sourceSets. main)
115121 )
116122 junit. convention(false )
117123 junitOutputDir. set(project. layout. buildDirectory. dir(" test-results" ). getOrNull()?. asFile)
@@ -128,8 +134,8 @@ class ClojureBasePlugin implements Plugin<Project> {
128134 project. tasks. test. dependsOn clojureTest
129135 }
130136
131- private void configureRun (Project project ) {
132- project . sourceSets. main { SourceSet set ->
137+ private void configureRun (Project project , JavaPluginExtension javaPluginExtension ) {
138+ javaPluginExtension . sourceSets. main { SourceSet set ->
133139 def runTaskName = set. getTaskName(null , " clojureRun" )
134140 TaskProvider<ClojureRun > task = project. tasks. register(runTaskName, ClojureRun )
135141 task. configure {
0 commit comments