如何在Android Studio中使用Gradle生成JavaDoc?

10

我找不到任何关于如何配置Gradle文件以为我的项目创建JavaDoc的文档。我已经尝试了一些来自SO和博客文章的代码片段,但它们似乎都不起作用,或者没有提供上下文。

这是我的Gradle文件。我需要做什么来添加一个生成JavaDoc的任务?

import org.apache.tools.ant.taskdefs.condition.Os

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}
2个回答

11

在我们的项目中,我们将以下内容添加到应用程序的 build.gradle 文件中:

android.applicationVariants.all { variant ->
  task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
    description "Generates Javadoc for $variant.name."
    source = variant.javaCompile.source
    ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
    classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
    options.links("http://docs.oracle.com/javase/7/docs/api/");
    options.links("http://d.android.com/reference/");
  }
}

这将向表单的生成任务中添加generate<build_variant>Javadoc。假设您的应用有freepro版本,那么会添加如下任务:

generateFreeDebugJavadoc
generateFreeReleaseJavadoc
generateProDebugJavadoc
generateProReleaseJavadoc

希望这能有所帮助。

我尝试这个时遇到了一个奇怪的错误:Error:(77, 0) Could not find property 'applicationVariants' on com.android.build.gradle.LibraryExtension_Decorated@19be5795. - 你有什么想法吗? - trippedout
6
两件事情 - 1. applicationVariants 只适用于 app 插件,也就是说,如果您正在构建库,则应使用 libraryVariants。 2. 检查您的 Android Gradle 插件版本。可能它不是最新的,或者太新了,这也有所改变。 - Fred
最初运行时,我遇到了有关 R.** 文件的错误。在类路径之后添加了以下内容:“exclude '/BuildConfig.java”和“exclude '/R.java'”。 - Dan Devine

2
在Android Studio中,编写一个类型为Javadoc的Gradle任务:
 task createJavadocs (type: Javadoc)
  {
        source = project.android.sourceSets.main.java.srcDirs
        options.linkSource true
        classpath += project.files(project.android.getBootClasspath().join(File.pathSeparator))
        failOnError false
  }

只需执行此任务即可创建Javadocs文档。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接