Skip to content

Commit 6f8d5e1

Browse files
authored
Merge pull request #48 from nebula-plugins/move-on-from-java-conventions
ClojureBasePlugin: stop using java conventions
2 parents e1052f2 + c8f06fa commit 6f8d5e1

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

src/main/groovy/nebula/plugin/clojuresque/ClojureBasePlugin.groovy

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.gradle.api.Project
2222
import org.gradle.api.model.ObjectFactory
2323
import org.gradle.api.plugins.JavaBasePlugin
2424
import org.gradle.api.plugins.JavaPlugin
25+
import org.gradle.api.plugins.JavaPluginExtension
2526
import org.gradle.api.tasks.SourceSet
2627
import 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

Comments
 (0)