-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathbuild.gradle
59 lines (53 loc) · 1.62 KB
/
build.gradle
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
47
48
49
50
51
52
53
54
55
56
57
58
59
plugins {
id 'eu.geekplace.javapinning.javadoc-conventions'
}
// TODO:
// apply from: 'version.gradle'
ext {
javadocAllDir = new File(buildDir, 'javadoc')
noJavadocAllProjects = [
':java-pinning-android',
].collect { project(it) }
javadocAllProjects = subprojects - noJavadocAllProjects
}
evaluationDependsOnChildren()
task javadocAll(type: Javadoc) {
source javadocAllProjects.collect {project ->
project.sourceSets.main.allJava.findAll {
// Filter out symbolic links to avoid
// "warning: a package-info.java file has already been seen for package"
// javadoc warnings.
!java.nio.file.Files.isSymbolicLink(it.toPath())
}
}
destinationDir = javadocAllDir
// Might need a classpath
classpath = files(javadocAllProjects.collect {project ->
project.sourceSets.main.compileClasspath})
classpath += files(androidBootClasspath)
options {
linkSource = true
use = true
links = [
"https://docs.oracle.com/en/java/javase/${javaMajor}/docs/api/",
] as String[]
overview = "$projectDir/resources/javadoc-overview.html"
}
// Finally copy the javadoc doc-files from the subprojects, which
// are potentially generated, to the javadocAll directory. Note
// that we use a copy *method* and not a *task* because the inputs
// of copy tasks is determined within the configuration phase. And
// since some of the inputs are generated, they will not get
// picked up if we used a copy method. See also
// https://stackoverflow.com/a/40518516/194894
doLast {
copy {
javadocAllProjects.each {
from ("${it.projectDir}/src/javadoc") {
include '**/doc-files/*.*'
}
}
into javadocAllDir
}
}
}