**使用手册:http://wrdoclet.winroad.net/ ** :(有时需要翻墙)
wrdoclet是基于javadoc doclet的,用来自动化生成接口文档的工具。相比于javadoc自带的doclet,其隐藏了内部实现细节,只暴露调用方需要关心的接口细节。目前主要支持的服务框架是Spring MVC,JAX-WS的SOAP服务,dubbo服务。生成接口文档后还可以与solr、jenkins集成,实现文档搜索以及自动化发布的功能。
因依赖于jdk的tools.jar包,jdk 1.6存在严重bug http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6709246 因此无法支持。目前最新的版本已支持jdk 1.7和1.8。为支持不同版本的jdk,部分代码分拆到另外的独立项目中以方便编译。
jdk1.9 https://docs.oracle.com/javase/9/docs/api/jdk/javadoc/doclet/package-summary.html#migration 对doclet这块进行了大规模的重写。因此wrdoclet暂时无法支持jdk1.9。目前正在改造中,敬请期待。
wrdocletbase(https://github.com/WinRoad-NET/wrdocletbase) 是基础模块. htmldoclet4jdk7(https://github.com/WinRoad-NET/htmldoclet4jdk7) 是基于wrdocletbase的针对jdk1.7的模块 htmldoclet4jdk8(https://github.com/WinRoad-NET/htmldoclet4jdk8) 是基于wrdocletbase的针对jdk1.8的模块 wrdoclet 依赖于以上3个模块,在运行时根据运行环境的jdk版本采用不同的模块来生成文档。
**生成的接口文档示例请参见:http://wrdocletdemo.winroad.net/ **
击链接加入群【问道】:https://jq.qq.com/?_wv=1027&k=5p3XY0m
This doclet tries to generate API doc for Spring MVC service, JAX-WS service, dubbo service.
supported Spring MVC service example:
/** * 添加一个学生 * @tag 学生管理 * @param student 要添加的学生 * * @author Adams * @version 0.0.1 * @memo 添加接口 * * @author Bob * @version 0.0.2 * @memo fix bug * * @return 被添加的学生 * @returnCode 400 404 503 */ @RequestMapping(value = "/add", method = RequestMethod.POST) public @ResponseBody Student addStudent(@RequestBody Student student) { return student; } public class Student extends Person { ... /** * @occurs required * @param schoolName 学校名称 */ public void setSchoolName(String schoolName) { this.schoolName = schoolName; } /** * @author Bob * @version 0.0.1 * @memo 添加学号字段 * * @author Adams * @version 0.0.2 * @memo 修改为可选字段 * @occurs optional * @param sno 学号 */ public void setSno(String sno) { this.sno = sno; } private String schoolName; private String sno; } supported JAX-WS service example:
/** * 获取用户列表 * @param name 用户名称 * @tag 用户管理, 用户展示 * * @author Adams * @version 0.0.1 * @memo init create * * @author Bob * @version 0.0.2 * @memo fix bug * * @return 用户列表 */ @WebResult(name = "getUserResult") public List<User> getUserList(@XmlElement(required=false) @WebParam(name = "name") String name); public class User { private String password; ... /** * @return 密码 */ public String getPassword() { return password; } } supported dubbo service example:
public interface DemoService { String sayHello(String name); } <dubbo:service interface="net.winroad.dubbo.DemoService" ref="demoService" /> 利用maven-javadoc-plugin插件接入非常方便, 将下面配置添加到pom.xml中的...内即可。命令行执行 mvn javadoc:javadoc 即可开始生成接口文档。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.10.3</version> <configuration> <doclet>net.winroad.wrdoclet.HtmlDoclet</doclet> <docletArtifact> <groupId>net.winroad</groupId> <artifactId>wrdoclet</artifactId> <version>1.1.5</version> </docletArtifact> <useStandardDocletOptions>false</useStandardDocletOptions><!-- important ! --> <additionalparam> -systemname ${wrdoclet.systemname} -branchname ${wrdoclet.branchname} -encoding utf-8 -charset utf-8 -d ../../../../../wrdoclet-gh-pages/apidocs-demoservice </additionalparam> </configuration> </plugin>