Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use Gradle to generate JavaDoc in Android Studio?

I can not find any documentation on how to configure my Gradle file to create the JavaDoc for my project. I already tried some snippets from SO and blog articles but none of them seem to work or they do not provide context.

This is my Gradle file. What do I need to do to add a task to generate 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'
}
like image 320
Jan Deinhard Avatar asked Mar 20 '15 09:03

Jan Deinhard


2 Answers

In our projects we added the following to the app's 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/");
  }
}

This will add tasks to the build of the form generate<build_variant>Javadoc. So let's say you have a free and a pro version of your app, this would add tasks like:

generateFreeDebugJavadoc
generateFreeReleaseJavadoc
generateProDebugJavadoc
generateProReleaseJavadoc

Hope this helps

like image 198
Fred Avatar answered Sep 19 '22 14:09

Fred


In android studio, write a gradle task of type Javadoc :

 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
  }

Simply execute this task will create javadocs.

like image 31
sver Avatar answered Sep 20 '22 14:09

sver