Mam projekt biblioteki Android, który zależy od innych projektów biblioteki Android. Potrzebuję wygenerować javadoc dla biblioteki, ale nie powiedzie się, ponieważ gradle umieszcza ścieżkę classpath javadoc w lokalizacjach .aar, ale javadoc oczekuje plików .jar.Jak wygenerować javadoc dla biblioteki Android, gdy ma zależności, które są również bibliotekami aar?
uproszczony plik Gradle:
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 rozwiązania możliwe:
1) jakoś dodać do classes.jar ścieżka ścieżka klasy z każdego aar biblioteki to zależy Build/intermidiates/eksplodowała-AAR/biblioteka /version/jars/classes.jar Nie wiem, jak uwzględnić te ścieżki w zadaniu javadoc.
2) ręcznie rozpakować classes.jar z pliku aar i dodać je do ścieżki klasy zadania javadoc
3) bardzo brudne hakerskich - sztywno ścieżki do biblioteki - ale myślę, że jest tak źle.
Jak uzyskać 1 lub 2 z gradle dsl?
Czy używasz Android Studio? Znajduje się w menu Narzędzia> Generuj JavaDoc wygodnym narzędziem do wybrania tego, co musi wykonać javadoc. – xiaomi
Używam Android Studio, ale to zadanie musi zostać wykonane automatycznie na zdalnej instancji Jennkins. To zadanie służy do przesyłania biblioteki do jcenter/mavenCentral – curioushikhov