Fix remaining Javadoc warnings

This fixes the last of our Javadoc warnings without creating a
circular dependency between ":com.ibm.wala.cast:javadoc" and
":com.ibm.wala.cast.js:javadoc".  Fixes #4, wherein more details about
this tricky dependency challenge can be found.
This commit is contained in:
Ben Liblit 2018-02-26 13:58:12 -06:00
parent 2a75244914
commit 48ffce525c
4 changed files with 48 additions and 7 deletions

View File

@ -0,0 +1,28 @@
import org.gradle.api.tasks.*
////////////////////////////////////////////////////////////////////////
//
// create a Javadoc-style "package-list" file
//
class CreatePackageList extends org.gradle.api.DefaultTask {
@Input Object sourceSet
@OutputFile File packageList = new File("$temporaryDir/package-list")
@TaskAction
def create() {
sourceSet.sourceCollections.collect { collection ->
def sourceRoot = collection.tree.dir.toPath()
collection.collect { source ->
def javaSourceFilePath = source.toPath()
def parentPath = javaSourceFilePath.parent
def relativePath = sourceRoot.relativize(parentPath)
relativePath.toString().replace(File.separator, '.')
}
}.flatten().sort().unique().each {
packageList << "$it\n"
}
}
}

View File

@ -14,6 +14,10 @@ dependencies {
)
}
task createPackageList(type: CreatePackageList) {
sourceSet sourceSets.main.java
}
javadoc {
def rhino = project(':com.ibm.wala.cast.js.rhino').compileJava
dependsOn rhino

View File

@ -16,16 +16,16 @@ dependencies {
javadoc {
def js = ':com.ibm.wala.cast.js'
evaluationDependsOn(js)
dependsOn "$js:compileJava"
js = project(js)
doFirst {
classpath += files project(js).compileJava
classpath += files js.compileJava
}
/*
// creates circular dependency
def jsDoc = project(js).javadoc
dependsOn jsDoc
options.links jsDoc.outputDirectory.path
*/
dependsOn js.createPackageList
options.linksOffline js.javadoc.outputDirectory.path, files(js.createPackageList).singleFile.parent
}
def currentJavaHome = org.gradle.internal.jvm.Jvm.current().javaHome

View File

@ -10,3 +10,12 @@ dependencies {
project(':com.ibm.wala.util'),
)
}
task createPackageList(type: CreatePackageList) {
sourceSet sourceSets.main.java
}
javadoc {
dependsOn createPackageList
options.linksOffline outputDirectory.path, files(createPackageList).singleFile.parent
}