Ich habe Android-Bibliothek-Projekt, das auf andere Android-Bibliothek Projekte abhängt. Ich muss Javadoc für die Bibliothek generieren, aber es schlägt fehl, weil Gradle den Javadoc-Klassenpfadpfad auf .aar-Speicherorte setzt, aber Javadoc JAR-Dateien erwartet.Wie generiere ich Javadoc für Android-Bibliothek, wenn es Abhängigkeiten hat, die auch AAR-Bibliotheken sind?
vereinfachte gradle Datei:
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
configurations {
javadocDeps
}
defaultConfig {
minSdkVersion 7
targetSdkVersion 23
versionCode 1
versionName "0.1.0"
}
}
dependencies {
compile 'com.android.support:support-v4:23.2.0'
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.annimon:stream:1.0.7'
javadocDeps 'com.android.support:support-annotations:23.2.0'
javadocDeps 'com.nineoldandroids:library:2.4.0'
javadocDeps 'com.android.support:support-v4:23.2.0'
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc, dependsOn: explodeAars) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
classpath += configurations.javadocDeps
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
3 Lösungen möglich:
1) irgendwie mit dem Classpath Weg classes.jar von jeder aar Bibliothek hinzufügen bauen hängt/intermidiates/Explosions-aar/Bibliothek /version/jars/classes.jar Ich weiß nicht, wie diese Pfade in die Javadoc-Aufgabe eingefügt werden sollen.
2) manuell classes.jar aus aar-Datei entpacken und sie Aufgabe Classpath von javadoc
3) sehr schmutzig Hack hinzufügen - fest einprogrammierten Pfade Bibliothek - aber ich denke, das ist so falsch.
Wie erreicht man 1 oder 2 mit Gradle DSL?
Verwenden Sie Android Studio? Es gibt in Tools> Generate JavaDoc ein praktisches Werkzeug um auszuwählen, was der Javadoc benötigt. – xiaomi
Ich benutze Android Studio, aber diese Aufgabe muss automatisch auf remote jenkins Instanz durchgeführt werden. Diese Aufgabe zum Hochladen der Bibliothek in jcenter/mavenCentral – curioushikhov