您好,登錄后才能下訂單哦!
Java 文檔一直是一個大問題。
很多項目不寫文檔,即使寫文檔,對于開發(fā)人員來說也是非常痛苦的。
不寫文檔的缺點自不用多少,手動寫文檔的缺點也顯而易見:
非常浪費時間,而且會出錯。
java 的文檔有幾類:
就算是我們 java 開發(fā)者,也很討厭看 jdk 的文檔??粗幻烙^,也很累。
但是缺點也是有的。開發(fā)人員要寫 jdk 原來的注釋+注解。注解太多,導(dǎo)致寫起來也很痛苦,大部分開發(fā)者后來還是選擇了放棄。
那么問題來了?我們怎么辦才能盡可能的讓開發(fā)人員,和文檔閱讀人員都樂于接受呢?
jdk 自帶的 doc 就是基于 maven 插件的,本項目也是。
區(qū)別如下:
盡可能的保證和 Java 原生注釋一致,讓開發(fā)者很容易就可以使用。
盡可能的信息全面,但是文檔簡潔。讓文檔的閱讀者享受到等同于手寫文檔的體驗。
為 java 項目生成項目文檔。
基于原生的 java 注釋,盡可能的生成簡介的文檔。用戶可以自定義自己的模板,生成自己需要的文檔。
基于 maven 項目生成包含大部分信息的元數(shù)據(jù)
默認(rèn)支持 markdown 簡化文檔的生成,支持自定義模板
支持用戶自定義文檔生成器
jdk1.8+
maven 3.x+
使用 maven 引入當(dāng)前 idoc 插件。
<build>
<plugins>
<plugin>
<groupId>com.github.houbb</groupId>
<artifactId>idoc-core</artifactId>
<version>0.1.0</version>
</plugin>
</plugins>
</build>
為了演示文檔,我們創(chuàng)建了一個 Address 對象。
package com.github.houbb.idoc.test.model;
/**
* 地址
* @author binbin.hou
* @since 0.0.1
*/
public class Address {
/**
* 城市
*/
private String country;
/**
* 街道
*/
private String street;
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
}
mvn com.github.houbb:idoc-core:0.0.2:idoc
[INFO] ------------------------------------ Start generate doc
[INFO] 共計 【1】 個文件待處理,請耐心等待。進(jìn)度如下:
==================================================================================================== 100%
[INFO] Generator doc with docGenerator: com.github.houbb.idoc.core.api.generator.ConsoleDocGenerator
[INFO] ------------------------------------ 文檔信息如下:
[類名] com.github.houbb.idoc.test.model.Address
[類信息] {"comment":"地址","docAnnotationList":[],"docFieldList":[{"comment":"城市","name":"country","type":"java.lang.String"},{"comment":"街道","name":"street","type":"java.lang.String"}],"docMethodList":[{"docMethodParameterList":[],"docMethodReturn":{"fullName":"java.lang.String","name":"String","packageName":"java.lang"},"docTagList":[],"exceptionList":[],"modifiers":["public"],"name":"getCountry","seeList":[],"signature":"getCountry()"},{"docMethodParameterList":[{"docAnnotationList":[],"name":"country","type":"java.lang.String"}],"docMethodReturn":{},"docTagList":[],"exceptionList":[],"modifiers":["public"],"name":"setCountry","seeList":[],"signature":"setCountry(country)"},{"docMethodParameterList":[],"docMethodReturn":{"fullName":"java.lang.String","name":"String","packageName":"java.lang"},"docTagList":[],"exceptionList":[],"modifiers":["public"],"name":"getStreet","seeList":[],"signature":"getStreet()"},{"docMethodParameterList":[{"docAnnotationList":[],"name":"street","type":"java.lang.String"}],"docMethodReturn":{},"docTagList":[],"exceptionList":[],"modifiers":["public"],"name":"setStreet","seeList":[],"signature":"setStreet(street)"}],"docTagList":[{"lineNum":5,"name":"author","parameters":["binbin.hou"],"value":"binbin.hou"},{"lineNum":6,"name":"since","parameters":["0.0.1"],"value":"0.0.1"}],"fullName":"com.github.houbb.idoc.test.model.Address","modifiers":["public"],"name":"Address","packageName":"com.github.houbb.idoc.test.model"}
[INFO] ------------------------------------ Finish generate doc
參考 03-自定義生成文件過濾器
效果參見 idoc-test-全部文檔.md
00-項目概覽
01-設(shè)計初衷
02-插件的參數(shù)配置
03-自定義生成文件過濾器
04-字段類型別名支持
idoc
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。