Kotlin-為Android項(xiàng)目生成Doc文檔

類似于Java中的JavaDoc工具,Kotlin的官方也發(fā)布了一款生成Kotlin文檔工具捉蚤。dokka
不過它確實(shí)不是很好用化借。

1.引入依賴

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.17"
    }
}
repositories {
    jcenter() // or maven { url 'https://dl.bintray.com/kotlin/dokka' }
}

坑1:截止在我寫這邊文檔時(shí)候周偎,該工具的最新版本為0.10.0。在這個(gè)版本中嗽测,作者將兩個(gè)插件進(jìn)行了合并(一個(gè)適用于Android項(xiàng)目的插件绪励,一個(gè)則用于通用Kotlin項(xiàng)目插件)。導(dǎo)致了出現(xiàn)了一個(gè)大坑唠粥。詳情請見這里 [https://github.com/Kotlin/dokka/issues/213(https://github.com/Kotlin/dokka/issues/213)疏魏。

經(jīng)過一早上的踩坑折騰,發(fā)現(xiàn)在回退到上一個(gè)版本晤愧,0.9.17版本沒出現(xiàn)類似問題大莫。

2. 配置使用

apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
// 添加插件
apply plugin: 'org.jetbrains.dokka-android'
...
android {
    ...
// 聲明dokka配置DSL
    dokka {
    // 輸出格式,目前支持五種官份,html, javadoc,html-as-java, markdown,kotlin-website*
        outputFormat = 'html'
      // 文檔輸出目錄
        outputDirectory = "$buildDir/javadoc"
    }
}

然后同步項(xiàng)目之后只厘,該插件會(huì)為項(xiàng)目添加一個(gè)dokka的task。

image.png

坑2:點(diǎn)擊執(zhí)行此任務(wù)之后舅巷。首先插件會(huì)構(gòu)建你項(xiàng)目中的所有的構(gòu)建變體(flavor)羔味。沒錯(cuò),如果你的項(xiàng)目中有dev钠右,release變體赋元,那么這兩個(gè)變體都會(huì)構(gòu)建一遍,出現(xiàn)任何構(gòu)建不通過都會(huì)導(dǎo)致生成文檔失敗飒房。比如說搁凸。在某些構(gòu)建變體中沒有配置BuildConfig屬性,ManifestPalceHolder還未來得及配置狠毯,都會(huì)導(dǎo)致構(gòu)建不通過坪仇。
WTF,你就不能像JavaDoc那樣安安靜靜像生成個(gè)文檔垃你。。

坑3:GC overhead limit exceeded。解決了上一個(gè)問題惜颇,又出現(xiàn)了一個(gè)oom的問題皆刺。這個(gè)問題也算是常見,不過我這個(gè)總共不超過十個(gè)class文件凌摄,居然翻車了羡蛾。。好吧锨亏,果斷在根目錄下gradle.properties文件中配置擴(kuò)大一下堆棧大小

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError

在成功構(gòu)建完所有的構(gòu)建變體任務(wù)后痴怨,終于看到了在輸出目錄outputDirectory中的出現(xiàn)了javadoc文件夾。

image.png

打開index頁面器予,你就可以看到dokka為項(xiàng)目生成的文檔了浪藻。


image.png

image.png

坑4:可以看到,dakko確實(shí)幫我們生成了類文檔乾翔,但是居然androidx開頭的是什么鬼爱葵??打開一開里面全都是一些R文件的聲明反浓。
很明顯萌丈,dokka有點(diǎn)水土不服,因?yàn)樵赼ndroid構(gòu)建過程中確實(shí)會(huì)生成很多R文件雷则。

image.png

那我只想生成項(xiàng)目src目錄下的代碼文檔辆雾,其他的我統(tǒng)統(tǒng)不想要。怎么辦月劈?
翻遍了dakko文檔度迂,解決方案不是沒有,只是在我看來不是很完美艺栈。在dakko中是通過 packageOptions 這個(gè)DSL配置來聲明相關(guān)配置的英岭。比如:

dokka {
        outputFormat = 'html'
        outputDirectory = "$buildDir/javadoc"
        packageOptions {
          // 所操作的包的前綴,包括androidx一下所有的子包湿右。通配符無效
            prefix = "androidx"
         // 該包全部不生成文檔
            suppress = true
        }
    }

在以上聲明中诅妹,dokka就不會(huì)為androidx作為包名前綴的類生成文檔。問題似乎得到了解決毅人。但是這是一種舍近求遠(yuǎn)的方法吭狡。就好比你去一家店想買一杯奶茶,老板居然問你不想喝什么口味的丈莺。划煮。因?yàn)樵诤罄m(xù)的開發(fā)中你可能還會(huì)引入新的包,dokka可能會(huì)為其他R文件生成以其他報(bào)名開頭的文檔缔俄。那么此時(shí)你必須繼續(xù)添加packageOptions配置弛秋。器躏。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蟹略,隨后出現(xiàn)的幾起案子登失,更是在濱河造成了極大的恐慌,老刑警劉巖挖炬,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揽浙,死亡現(xiàn)場離奇詭異,居然都是意外死亡意敛,警方通過查閱死者的電腦和手機(jī)馅巷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來草姻,“玉大人钓猬,你說我怎么就攤上這事〔昵悖” “怎么了逗噩?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長跌榔。 經(jīng)常有香客問我异雁,道長,這世上最難降的妖魔是什么僧须? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任纲刀,我火速辦了婚禮,結(jié)果婚禮上担平,老公的妹妹穿的比我還像新娘示绊。我一直安慰自己,他們只是感情好暂论,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布面褐。 她就那樣靜靜地躺著,像睡著了一般取胎。 火紅的嫁衣襯著肌膚如雪展哭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天闻蛀,我揣著相機(jī)與錄音匪傍,去河邊找鬼。 笑死觉痛,一個(gè)胖子當(dāng)著我的面吹牛役衡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播薪棒,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼手蝎,長吁一口氣:“原來是場噩夢啊……” “哼榕莺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柑船,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤帽撑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鞍时,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扣蜻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年逆巍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莽使。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锐极,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芳肌,到底是詐尸還是另有隱情灵再,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布亿笤,位于F島的核電站翎迁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏净薛。R本人自食惡果不足惜汪榔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肃拜。 院中可真熱鬧痴腌,春花似錦、人聲如沸燃领。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猛蔽。三九已至剥悟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枢舶,已是汗流浹背懦胞。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凉泄,地道東北人躏尉。 一個(gè)月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像后众,于是被迫代替她去往敵國和親胀糜。 傳聞我的和親對象是個(gè)殘疾皇子颅拦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容