1、在IDEA中使用maven-javadoc插件生成文档
生成文档,可以帮助我们,快速的给第三方提供帮助的能力。
在IDEA中可以使用maven javadoc插件,生成javadoc文档。
首先,官方学习地址为:
http://maven.apache.org/plugins/maven-javadoc-plugin/
步1、添加插件依赖
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
</plugin>
步2、解决打包时中文乱码问题
1、配置环境变量
在本地windows或linux下配置环境变量:
JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
如在windows上可以如下配置:

2、给maven插件配置参数
给maven插件添加配置参数,这些参数,在官方上都找到对应的功能。
http://maven.apache.org/plugins/maven-javadoc-plugin/javadoc-mojo.html
具体配置如下:首先在pom.xml文件中添加属性配置:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
然后在maven javadoc的配置中添加编译参数:
<configuration>
<charset>${project.build.sourceEncoding}</charset>
<!--以下默认值即为project.build.sourceEncoding-->
<docencoding>${project.build.sourceEncoding}</docencoding>
</configuration>
目前为止,完整的插件配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<charset>${project.build.sourceEncoding}</charset>
<!--以下默认值即为project.build.sourceEncoding-->
<docencoding>${project.build.sourceEncoding}</docencoding>
</configuration>
</plugin>
步3、非标准javadoc注释的处理
默认情况下,maven javadoc只处理标准javadoc注释,如以下的@author,@version都是java的标准注释
/** * 测试类 * @author wj * @version 1.0 2019-04-14 */
public class SpringCoreApp {}
但是如果在类上,存在非标准的javadoc注释,如@date:
/** * 测试类
* @author wj
* @version 1.0 2019-04-14
* @date 2019-04-14 22:12:23 注意这儿是非标准javadoc注释 */
public class SpringCoreApp {}
则此时在使用maven javadoc生成javadoc文档时,将会出现以下异常:
运行:

异常:
错误: 未知标记: date
[ERROR] * @date 2019-04-14 22:12:23
通过添加doclint=none对非标准的注释进行忽略:
<!--忽略非标准javadoc注释-->
<doclint>none</doclint>
完整的maven javadoc插件配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<charset>${project.build.sourceEncoding}</charset>
<!--以下默认值即为project.build.sourceEncoding-->
<docencoding>${project.build.sourceEncoding}</docencoding>
<!--忽略非标准javadoc注释-->
<doclint>none</doclint>
</configuration>
</plugin>
此时再执行文档生成将只会显示警告:
SpringCoreApp.java:9: 警告 - @date是未知标记。
关于doclint的更具体说明如下:
By default, the -Xdoclint option is enabled. Disable it with the option -Xdoclint:none.
Change what the -Xdoclint option reports with the following options:
-Xdoclint
none : disable the -Xdoclint option
-Xdoclint
group : enable group checks
-Xdoclint
all : enable all groups of checks
-Xdoclint
all,-group : enable all except group checks
(参考官方文档:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html#BEJEFABE)
doclint=none还会忽略方法上没有@param的java doc注释,如,以下是一个正常规范的方法注释,这个注释对参数名称做了完整的说明:
/** * 保存彩票信息
* @param name
* @param age
*/
public void doInsertDises(String name,String age){}
但是如果删除@param注释,并删除<doclint>none</doclint>的配置。将会导致编译出错:[ERROR]\SpringCoreApp.java:13: 警告: name没有 @param
[ERROR]\SpringCoreApp.java:13: 警告: age没有 @param
现在我们依然保持方法上没有@param注释,即:
/**
* 保存彩票信息
*/
public void doInsertDises(String name,String age){}
但我们添加<doclint>none</doclint>的配置,此时,将会生成文档成功:
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.715 s
可见,规范的代码开发,非常重要,可是,对于目前国内,开发不规范的情况下,添加doclint=none还是很有必要的。





