简体   繁体   English

如何使用Gradle生成javadoc?

[英]How generate javadoc with Gradle?

I would like generate javadoc out of aar lib file, but my actual task not work and finish with error. 我想从aar lib文件生成javadoc,但我的实际任务不起作用并完成错误。 I'm somewhat lost with gradle. 我有点迷失了。

Where should generate javadocs? 应该在哪里生成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*'
    }
}

If you are following standard project structure then use: 如果您遵循标准项目结构,则使用:

apply plugin: 'java'

javadoc {
    source = sourceSets.main.allJava
    classpath = configurations.compile
}

If not then you need to specify the include closure. 如果没有,那么你需要指定include闭包。 Add the closure like: 添加闭包像:

include 'path/to/directory/*'

If include closure is not working then add sourceSet closure with srcDir pointing to the module/java directory: 如果include closure无效,则添加sourceSet闭包, srcDir指向module/java目录:

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

    }
}

And after that run $gradle javadoc command. 然后运行$gradle javadoc命令。 Then check your build directory for html files having all javadocs. 然后检查构建目录中是否有包含所有javadoc的html文件。 Note: Replace srcDir with your root package path. 注意:将srcDir替换为根程序包路径。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM