如何使用Gradle生成javadoc?

Osc*_*zas 9 java android javadoc build gradle

我想从aar lib文件生成javadoc,但我的实际任务不起作用并完成错误.我有点迷失了.

应该在哪里生成javadoc?

android.libraryVariants.all { variant ->

    // This part is for change AAR location
    variant.outputs.each { output ->
        def outputFile = output.outputFile
        if (outputFile != null && outputFile.name.endsWith('.aar')) {
            def fileName = "${archivesBaseName}-${version}.aar"
            output.outputFile = new File("$rootProject.projectDir/build/generated-aar", fileName)
        }
    }

    // Here generate tasks for variant to generate Javadocs
    task "generate${variant.name.capitalize()}Javadoc"(type: Javadoc) {
        description = "Generates javadoc for build $variant.name"
        destinationDir = new File("$rootProject.projectDir/build/generated-javadoc", variant.baseName)

        // add SDK classes
        source = variant.javaCompiler.source

        ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
        classpath = files(variant.javaCompiler.classpath.files) + files(ext.androidJar)

        ext.androidDoc = "${android.sdkDirectory}/docs/reference"

        options.linksOffline("http://d.android.com/reference", ext.androidDoc)
        options.links("http://docs.oracle.com/javase/7/docs/api/")
        options.links("http://d.android.com/reference/")

        exclude '*BuildConfig.java'
        exclude '*R.java'
        exclude '*impl*'
        exclude '*tests*'
    }
}
Run Code Online (Sandbox Code Playgroud)

Abh*_*ity 15

如果您遵循标准项目结构,则使用:

apply plugin: 'java'

javadoc {
    source = sourceSets.main.allJava
    classpath = configurations.compile
}
Run Code Online (Sandbox Code Playgroud)

如果没有,那么你需要指定include闭包.添加闭包像:

include 'path/to/directory/*'
Run Code Online (Sandbox Code Playgroud)

如果include closure不起作用,则添加指向目录的sourceSet闭包:srcDirmodule/java

sourceSets {
    build {
        java.srcDir file('src/main/java')

    }
}
Run Code Online (Sandbox Code Playgroud)

之后运行$gradle javadoc命令.然后检查构建目录中是否有包含所有javadoc的html文件.注意:将srcDir替换为根程序包路径.

  • 我不确定类路径字段是否还需要。需要注意的一件事是 java-library 插件具有可用的 javadoc 任务。您还可以在[此处](https://docs.gradle.org/current/dsl/org.gradle.api.tasks.javadoc.Javadoc.html)查看更新后的规范,因为“configurations.compile”选项正在被修改已弃用。 (4认同)