Skip to content

Commit e601223

Browse files
committed
Correct groovydoc generation in the gradle projects
1 parent 612e544 commit e601223

File tree

5 files changed

+48
-29
lines changed

5 files changed

+48
-29
lines changed

grails-gradle/docs-core/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ tasks.named('jar', Jar).configure { Jar it ->
8585
jar.dependsOn docFilesJar
8686

8787
apply {
88-
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
8988
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
89+
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
9090
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
9191
}
9292

grails-gradle/gradle/docs-config.gradle

+34-23
Original file line numberDiff line numberDiff line change
@@ -23,36 +23,47 @@ dependencies {
2323
add('documentation', 'org.fusesource.jansi:jansi')
2424
add('documentation', 'jline:jline')
2525
add('documentation', 'com.github.javaparser:javaparser-core')
26-
add('documentation', 'org.codehaus.groovy:groovy')
27-
add('documentation', 'org.codehaus.groovy:groovy-ant')
28-
add('documentation', 'org.codehaus.groovy:groovy-docgenerator')
29-
add('documentation', 'org.codehaus.groovy:groovy-templates')
26+
add('documentation', "org.apache.groovy:groovy:${bomDependencyVersions['groovy.version']}")
27+
add('documentation', "org.apache.groovy:groovy-groovydoc:${bomDependencyVersions['groovy.version']}")
28+
add('documentation', "org.apache.groovy:groovy-ant:${bomDependencyVersions['groovy.version']}")
29+
add('documentation', "org.apache.groovy:groovy-docgenerator:${bomDependencyVersions['groovy.version']}")
30+
add('documentation', "org.apache.groovy:groovy-templates:${bomDependencyVersions['groovy.version']}")
3031
}
3132

3233
ext {
3334
includeInApiDocs = true
3435
}
3536

36-
tasks.named('groovydoc', Groovydoc).configure {
37-
classpath = configurations.documentation
38-
groovyClasspath = configurations.documentation
39-
access = GroovydocAccess.PROTECTED
40-
includeAuthor = true
41-
includeMainForScripts = false
42-
processScripts = false
43-
destinationDir = project.file('build/docs/api')
37+
TaskProvider<Groovydoc> groovydocTask = tasks.named('groovydoc', Groovydoc)
38+
groovydocTask.configure { Groovydoc it ->
39+
it.classpath = configurations.documentation
40+
it.groovyClasspath = configurations.documentation
41+
it.access = GroovydocAccess.PROTECTED
42+
it.includeAuthor = false
43+
it.includeMainForScripts = false
44+
it.processScripts = false
45+
it.noTimestamp = true
46+
it.destinationDir = project.file('build/docs/api')
4447
}
4548

46-
tasks.named('javadoc', Javadoc).configure { Javadoc it ->
47-
(it.options as StandardJavadocDocletOptions).with {
48-
encoding = 'UTF-8'
49-
docEncoding = 'UTF-8'
50-
charSet = 'UTF-8'
51-
addStringOption('Xms64M')
52-
addStringOption('Xmx512M')
53-
}
49+
tasks.named('javadoc').configure {
50+
it.enabled = false
51+
}
52+
53+
tasks.named('javadocJar', Jar).configure { Jar jar ->
54+
jar.reproducibleFileOrder = true
55+
jar.preserveFileTimestamps = false
56+
jar.dirMode = 0755 // To avoid platform specific defaults
57+
jar.fileMode = 0644 // to avoid platform specific defaults
58+
59+
jar.dependsOn(groovydocTask)
60+
61+
// Ensure the java source set is included in the groovydoc source set
62+
SourceSetContainer sourceSets = project.extensions.getByType(SourceSetContainer)
63+
groovydocTask.get().source(project.files(sourceSets.main.java.srcDirs))
64+
65+
ConfigurableFileCollection groovyDocFiles = project.files(groovydocTask.get().destinationDir)
66+
jar.from(groovyDocFiles)
67+
jar.inputs.files(groovyDocFiles)
5468
}
5569

56-
tasks.named('build').configure {
57-
finalizedBy('groovydoc')
58-
}

grails-gradle/gradle/java-config.gradle

+11-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,17 @@ extensions.configure(JavaPluginExtension) {
2525
it.withSourcesJar()
2626
}
2727

28-
tasks.withType(Javadoc).configureEach { Javadoc it ->
29-
it.options.noTimestamp true // prevent the file header with the date
30-
it.options.bottom "Generated ${formattedBuildDate} (UTC)"
28+
tasks.named('sourcesJar', Jar).configure { Jar jar ->
29+
SourceSetContainer sourceSets = project.extensions.getByType(JavaPluginExtension).sourceSets
30+
jar.reproducibleFileOrder = true
31+
jar.preserveFileTimestamps = false
32+
jar.dirMode = 0755 // To avoid platform specific defaults
33+
jar.fileMode = 0644 // to avoid platform specific defaults
34+
jar.duplicatesStrategy = DuplicatesStrategy.EXCLUDE
35+
36+
// don't only include main, but any source set
37+
jar.from sourceSets.collect { it.allSource }
38+
jar.inputs.files(sourceSets.collect { it.allSource })
3139
}
3240

3341
// JavaCompile is not configured because we put java files inside of the groovy source sets

grails-gradle/model/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ dependencies {
6969
}
7070

7171
apply {
72-
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
7372
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
73+
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
7474
from rootProject.layout.projectDirectory.file('gradle/test-config.gradle')
7575
}
7676

grails-gradle/plugins/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ publishing {
180180
}
181181

182182
apply {
183-
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
184183
from rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
184+
from rootProject.layout.projectDirectory.file('gradle/docs-config.gradle')
185185
from rootProject.layout.projectDirectory.file('gradle/e2eTest.gradle')
186186
}

0 commit comments

Comments
 (0)