Gradle, Javadoc y la documentación de Android
Ahora estoy usando Gradle para todos mis proyectos, e incluso para la generación de javadoc.
android.libraryVariants.all { variant -> task("generate${variant.name}Javadoc", type: Javadoc) { title = "$name $version API" source = variant.javaCompile.source ext.androidJar = "${android.plugin.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" ext.googlePlayServicesJar = "${android.plugin.sdkDirectory}/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar" classpath = files(variant.javaCompile.classpath.files, ext.androidJar, ext.googlePlayServicesJar) options.links("http://docs.oracle.com/javase/7/docs/api/"); options.links("http://d.android.com/reference/"); //options.linksOffline("http://d.android.com/reference", "${android.plugin.sdkDirectory}/docs/reference"); exclude '**/BuildConfig.java' exclude '**/R.java' } }
Con ese código tengo todo funcionando, excepto una cosa: los objetos regulares de la API de Android como Actividad, Bitmap, etc. Los enlaces de Java funcionan bien.
- Gradle build Javadoc tarea falla con 'etiqueta desconocida: attr'
- Añadir local javadoc a local aar en Android-Studio
- JavaDoc en un proyecto Eclipse Android
- ¿Por qué mi fuente de SDK de Android no está completa?
- ¿Cómo exportar la biblioteca AAR con su documentación?
La documentación final generada no enlaza a http://d.android.com/reference . He intentado both.links () y options.linksOffline()
sin éxito.
EDITAR
Gracias a @ejb, el problema fue que no se pueden proporcionar múltiples options.links()
al mismo tiempo. Así que usé options.links()
para la documentación de Java y options.linksOffline()
para la documentación de Android:
options { links("http://docs.oracle.com/javase/7/docs/api/"); linksOffline("http://d.android.com/reference", "${android.plugin.sdkDirectory}/docs/reference"); //stylesheetFile = new File(projectDir, "stylesheet.css"); }
- generar Java docs android studio
- Eclipse no tiene java doc para mostrar información sobre clases y métodos. Cómo adjuntar esos? Androide
- Crear javadoc en eclipse
- Cómo generar javadocs para el proyecto android
- Cómo generar javadoc para la biblioteca de Android cuando tiene dependencias que también son bibliotecas aar?
- Javadoc en Eclipse no reconoce paquetes
- Doclava - ¿Cómo generar versionado xml?
- Cualquier forma de incrustar javadoc en un tarro
Fui capaz de vincular con éxito a http://d.android.com/reference utilizando el siguiente fragmento que es funcionalmente exactamente lo que tienes (por lo que puedo decir).
android.libraryVariants.all { variant -> task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) { // title = '' // description = '' source = variant.javaCompile.source classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath()) options { links "http://docs.oracle.com/javase/7/docs/api/" linksOffline "http://d.android.com/reference","${android.sdkDirectory}/docs/reference" } exclude '**/BuildConfig.java' exclude '**/R.java' } }
Así que hay algo más aquí.
Tienes que construir el javadoc sin conexión, ya que no parece que la package-list
esté disponible en la ruta del servicio web. Tal vez compruebe que tiene los documentos cargados localmente y asegúrese de que hay una package-list
en el directorio /[android-sdk]/docs/reference
.
Si todavía no puede averiguarlo, tal vez podría publicar salida.
Otra cosa que puede comprobar es ./build/tmp/[taskname]/javadoc.options
, el head
de dicho archivo debe mostrar las opciones apropiadas cuidadosamente establecidas. Las cosas a comprobar incluirían la inclusión apropiada del android.jar en el -classpath y la presencia de linksOffline con los argumentos esperados: -linksoffline extDocURL packageListLoc
javadoc.options
debe tener ambas opciones con sólo los argumentos respectivos:
-linksoffline 'http://d.android.come/reference' '[sdkDir]/docs/reference' -links 'http://docs.oracle.com/javase/7/docs/api/'
EDIT : android.getBootClasspath()
es mejor, gracias a P-chan.
Para Android Gradle plugin 1.1.2+ (com.android.tools.build:gradle:1.1.+)
LibraryVariants – ya no funciona
utilizar:
task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) destinationDir = file("../javadoc/") failOnError false }
DestinationDir = file ("../javadoc /") – localiza javadocs en la raíz del directorio del proyecto (de esta forma jenkins javadoc plugin podría encontrarlo y mostrarlo en el panel de documentos especial)
FailOnError false – para suprimir las advertencias que pueden provocar la creación de errores en jenkins
Alternativa para Gradle JavaDocs
Doxygen – herramienta de documentación de referencias cruzadas.
Podría ejecutarse desde la interfaz de usuario o terminal: http://www.stack.nl/~dimitri/doxygen/manual/doxygen_usage.html
Generando javadoc disponible java tool: ' javadoc '
Ejecutar desde la línea de comandos:
javadoc -d docs -sourcepath app/src/main/java -subpackages com
Docs – carpeta de destino