2017-09-01 251 views
2

我想从aar lib文件中生成javadoc,但是我的实际任务不工作,并且以错误结束。我有点失落,因为有了gradle。如何用Gradle生成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*' 
    } 
} 
+0

也许你可以添加导致构建失败的错误? – dpr

回答

4

如果你是以下标准项目结构,然后使用:

apply plugin: 'java' 

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

如果没有,那么你需要指定包括关闭。添加封样:

include 'path/to/directory/*' 

如果包括关闭不工作与SRCDIR指向模块/ java目录添加sourceSet关闭:

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

    } 
} 

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

+0

我已经使用android.library插件和maven插件。 –

+0

我尝试'include **/*。java'但没有结果 –