### 簡介:
如果你是一個庫開發(fā)者,那么必不可少的就是像對使用者提供sdk文檔臂外,這篇講述使用gradle來構(gòu)建javadoc文檔
<!-- more -->?
#### 準備
首先我們有一個自己的庫模塊谤逼,這里我新建一個library名叫mylibrary剩胁,然后在模塊里創(chuàng)造一個類用于展示
<figure class="half">
? ? <img src="/images/gradle_javadoc1.png">
? ? <img src="/images/gradle_javadoc2.png">
</figure>
#### 新建一個task
我們在庫模塊下面新建一個gradle-javadoc.gradle文件用于存放javadoc相關(guān)task,并在模塊的build.gradle中通過下面代碼包含該文件
```
apply from: 'gradle-javadoc.gradle'
```
我們在gradle-javadoc文件中構(gòu)建一個task,代碼如下
```java
task javadoc(type: Javadoc) {
? ? android.libraryVariants.all { variant ->
? ? ? ? //javadoc生成時遇到錯誤繼續(xù)執(zhí)行
? ? ? ? failOnError = false
? ? ? ? //文檔產(chǎn)生路徑
? ? ? ? destinationDir = new File(destinationDir, variant.baseName)
? ? ? ? //指定源碼文件
? ? ? ? source = files(variant.javaCompile.source)
? ? ? ? //用于解析源代碼中的類型引用的類路徑
? ? ? ? classpath = files(variant.javaCompile.classpath.files) + files(android.bootClasspath)
? ? ? ? //生成javadoc設(shè)置選項
? ? ? ? options.windowTitle(" SDK $VERSION_NAME ")
? ? ? ? //不包含R文件和BuildConfig文件
? ? ? ? exclude '**/R.java','**/BuildConfig.java'
? ? }
}
```
在上面的代碼里巨税,我們構(gòu)建里一個叫做javadoc的task达吞,并且指定代碼路徑以及產(chǎn)生文件路徑
#### 執(zhí)行task
任務(wù)構(gòu)建完之后鸵隧,當我們需要文檔時绸罗,我們需要執(zhí)行文件,在命令行輸入下面命令豆瘫,這里我是linux系統(tǒng)珊蟀,window系統(tǒng)gradle命令不同
```
./gradlew javadoc
```
#### 瀏覽文檔
我們在app/build 路徑下會發(fā)現(xiàn)生成一個docs文件,我們找到該文件下的index.html文件,用瀏覽器打開育灸,便可以瀏覽文檔了
<figure class="half">
? ? <img src="/images/gradle_javadoc3.png">
? ? <img src="/images/gradle_javadoc4.png">
</figure>
#### 其它參數(shù)設(shè)置
| Property? ? ? | 描述? |
| ------------- |------- |
| classpath? ? |用于解析源代碼中的類型引用的類路徑? ? |
| destinationDir|生成文檔的目錄|
| excludes? ? ? |排除文件? ? |
| executable? ? |用于生成Javadoc的Javadoc可執(zhí)行文件腻窒。如果為null,則使用當前JVM的Javadoc可執(zhí)行文件磅崭。|
| failOnError? |指定在Javadoc生成期間遇到錯誤時此任務(wù)是否失敗儿子。|
| includes? ? ? |包含模式的集合。|
| maxMemory? ? |分配給此任務(wù)的內(nèi)存量砸喻。|
| options? ? ? |Javadoc生成選項柔逼。|
| source? ? ? ? |在包含和排除模式應用之后,此任務(wù)的來源割岛。忽略不存在的源文件愉适。|
| title? ? ? ? |生成的文檔的標題。|
| toolChain? ? |將用于生成Javadoc的工具鏈癣漆。|