【问题标题】:How generate javadoc with Gradle?如何使用 Gradle 生成 javadoc?
【发布时间】:2018-02-10 09:14:45
【问题描述】:

我想从 aar lib 文件中生成 javadoc,但我的实际任务不起作用并以错误结束。我有点迷失了 gradle。

应该在哪里生成 javadocs?

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*'
    }
}

【问题讨论】:

  • 也许您可以添加导致构建失败的错误?

标签: java android gradle build javadoc


【解决方案1】:

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

apply plugin: 'java'

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

如果没有,那么您需要指定 include 闭包。像这样添加闭包:

include 'path/to/directory/*'

如果包含闭包不起作用,则添加 sourceSet 闭包和 srcDir 指向 module/java 目录:

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

    }
}

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

【讨论】:

  • 我用过android.library插件和maven插件。
  • 我尝试include **/*.java 但没有结果
  • 我不确定是否需要类路径字段。需要注意的一件事是 java-library 插件具有可用的 javadoc 任务。您还可以查看 here 以获取更新的规范,因为 configurations.compile 选项已被弃用。
猜你喜欢
  • 2023-03-30
  • 2021-04-26
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 2020-07-15
  • 2012-12-16
  • 2013-06-07
  • 2012-04-15
相关资源
最近更新 更多