मेरे पास एंड्रॉइड लाइब्रेरी प्रोजेक्ट है जो अन्य एंड्रॉइड लाइब्रेरी प्रोजेक्ट्स पर निर्भर करता है। मुझे पुस्तकालय के लिए जावाडोक उत्पन्न करने की ज़रूरत है, लेकिन यह विफल हो जाती है क्योंकि ग्रेडल .aar स्थानों पर जावाडोक क्लासपाथ पथ डालता है लेकिन जावडोक अपेक्षा करता है .jar फ़ाइलें।एंड्रॉइड लाइब्रेरी के लिए जावाडोक कैसे उत्पन्न करें जब इसकी निर्भरताएं भी हैं जो अरबी पुस्तकालय भी हैं?
सरलीकृत 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 समाधान संभव:
1) किसी भी तरह हर आर पुस्तकालय यह/intermidiates निर्माण निर्भर करता है से classpath पथ classes.jar में जोड़ने के लिए/विस्फोट-आर/पुस्तकालय /version/jars/classes.jar मुझे नहीं पता कि इन पथों को जावाडोक कार्य में कैसे शामिल किया जाए।
2) मैन्युअल रूप से आर फ़ाइल से classes.jar खोल और उन्हें जावाडोक कार्य
3) बहुत गंदे हैक के classpath के लिए जोड़ - पुस्तकालय के लिए hardcoded रास्तों - लेकिन मुझे लगता है कि यह इतना गलत है।
ग्रेडल डीएसएल के साथ 1 या 2 कैसे प्राप्त करें?
क्या आप एंड्रॉइड स्टूडियो का उपयोग कर रहे हैं? टूल में है> जावाडॉक को एक सुविधाजनक टूल जेनरेट करने के लिए जवाडोक को चुनने के लिए जेनरेट करें। – xiaomi
मैं एंड्रॉइड स्टूडियो का उपयोग करता हूं लेकिन यह कार्य दूरस्थ जेनकींस उदाहरण पर स्वचालित रूप से किया जाना चाहिए। यह कार्य लाइब्रेरी को jcenter/mavenCentral – curioushikhov