久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

當它具有也是 aar 庫的依賴項時,如何為 android

How to generate javadoc for android library when it has dependencies which are also aar libraries?(當它具有也是 aar 庫的依賴項時,如何為 android 庫生成 javadoc?)
本文介紹了當它具有也是 aar 庫的依賴項時,如何為 android 庫生成 javadoc?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有依賴于其他 android 庫項目的 android 庫項目.我需要為庫生成 javadoc,但它失敗了,因為 gradle 將 javadoc 類路徑放入 .aar 位置,但 javadoc 需要 .jar 文件.

I have android library project which depends on other android library projects. I need to generate javadoc for library but it fails because gradle puts to javadoc classpath path to .aar locations but javadoc expects .jar files.

簡化的 gradle 文件:

simplified gradle file:

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 種可能的解決方案:

3 solutions possible:

1) 以某種方式從它所依賴的每個 aar 庫添加到類路徑路徑 classes.jar build/intermidiates/exploded-aar/library/version/jars/classes.jar我不知道如何在 javadoc 任務中包含這些路徑.

1) somehow to add to the classpath path classes.jar from every aar library it depends build/intermidiates/exploded-aar/library/version/jars/classes.jar I don't know how to include these paths in javadoc task.

2) 手動從aar文件中解壓classes.jar并將它們添加到javadoc任務的classpath中

2) manually unpack classes.jar from aar file and add them to classpath of javadoc task

3) 非常骯臟的 hack - 庫的硬編碼路徑 - 但我認為這是非常錯誤的.

3) very dirty hack - hardcoded paths to library - but I think this is so WRONG.

如何用gradle dsl實現(xiàn)1或2?

How to achieve 1 or 2 with gradle dsl?

推薦答案

由于 exploded-aar 不再存在(沒有構(gòu)建目錄中的替代項).

The solution from @rve is now broken on Android Studio 2.3 / Gradle 3.3 as the exploded-aar no longer exists (with no alternative inside the build directory).

如果你依賴的aar不是你項目中的一個模塊,你需要先提取classes.jar,然后在classpath中引用它(基本上是重新創(chuàng)建intermediates/exploded-aar手動).

If the aar you depend on is not a module in your project, you will need first to extract the classes.jar before referencing it in the classpath (basically re-create intermediates/exploded-aar manually).

如果您依賴的 aar 只是項目中的另一個模塊,您還可以使您的 javadoc 任務依賴于該模塊的編譯任務并引用該模塊的 intermediates/classes/release (例如,如果您制作 javadoc 取決于 assembleRelease).該解決方法的一個示例:https://github.com/微軟/mobile-center-sdk-android/pull/345/files

If the aar you depend on is just another module in your project you can also make your javadoc task depends on the compile task of that module and reference the intermediates/classes/release of that module (if you make javadoc depends on assembleRelease for example). An example of that workaround: https://github.com/Microsoft/mobile-center-sdk-android/pull/345/files

我真的希望有人提出更好的解決方案.

I really wish someone comes up with a better solution though.

這篇關于當它具有也是 aar 庫的依賴項時,如何為 android 庫生成 javadoc?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現(xiàn) IncompatibleClassChangeError)
How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
主站蜘蛛池模板: 丁香六月激情 | 黄色片视频网站 | 成人av免费看 | 男女无遮挡xx00动态图120秒 | 午夜精品在线观看 | 日韩精品一区二区在线 | 久久久久综合 | 日韩精品免费视频 | 少妇一级淫片免费看 | 亚洲第一黄色 | 国产三级在线看 | 97在线视频观看 | 国产午夜小视频 | 国产一区二区精品丝袜 | 超碰在线99 | 老司机午夜免费精品视频 | av黄色在线观看 | 亚洲精品乱码久久久久 | 亚洲综合自拍 | 中文字幕免费在线 | 免费国产黄色 | 三级黄色片网站 | 精品久久一区二区三区 | 久久精品99久久久久久 | 日韩欧美一区二区三区久久婷婷 | 在线观看黄色小视频 | 日韩精品视频免费 | 一区二区三区视频在线播放 | 黄色大片免费观看 | 欧美日韩黄色片 | 国产成人午夜 | 性色av蜜臀av浪潮av老女人 | 欧美在线免费观看 | 成人免费毛片嘿嘿连载视频 | 久久久成人免费视频 | 久久人人爱 | 免费成人小视频 | 日本不卡一区 | 男女操网站 | 91麻豆精品国产91久久久久久 | 午夜激情福利 |