版权声明:本文为博主原创文章,未经博主允许不得转载。

 

目录(?)[+]

 

需求

最近要对一个项目结构如下的Maven项目生成JavaDoc文档。

Project
                        |-- pom.xml
                        |-- Module1
                                |   `-- pom.xml
                        |-- Module2
                                |   `-- pom.xml
                        |-- Module3
                                |-- pom.xml

这个就需要用到本文将要提出的一个Maven插件:javadoc。

基本使用

插件的基本配置很简单:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-javadoc-plugin</artifactId>
  4. <version>2.9.1</version>
  5. </plugin>

如果对于一个普通的Maven项目,那么这个配置就可以让你输出一个JavaDoc文档了(使用javadoc:javadoc命令)。

多模块Maven项目

而我们现在是一个多模块的Maven项目,那么就需要一些额外的配置来完成此操作:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-javadoc-plugin</artifactId>
  4. <version>2.9.1</version>
  5. <configuration>
  6. <aggregate>true</aggregate>
  7. </configuration>
  8. </plugin>

就是一个aggregate设置为true,就可以让你在父项目运行javadoc:javadoc的时候,就会将子模块的JavaDoc生成在父项目的target下,并且会将其整合成一个JavaDoc。

自定义标签

现在问题来了:

我们的类中的方法注释如下

  1. /**
  2. * @author     : 张三
  3. * @group      : group
  4. * @Date       : 2014-01-26 21:14:49
  5. * @Comments   : 页面所含操作增删改查的ejb接口
  6. * @Version    : 1.0.0
  7. */
  8. public interface IOperationBean {
  9. /**
  10. * @MethodName  : getOperationByID
  11. * @Description : 根据Id获得页面所含操作
  12. * @param ID 页面所含操作ID
  13. */
  14. PageOperation getOperationByID(String ID);
  15. }

而我们在生成JavaDoc后,并没有看到Description和MethodName这两个注解中对应的内容。也就导致了方法的说明不翼而飞了。

经过实验,要想像jdk那样让方法的描述紧跟在方法名后面,是需要这样添加注释的:

  1. /**
  2. * 根据Id获得页面所含操作
  3. * @param ID 页面所含操作ID
  4. */
  5. PageOperation getOperationByID(String ID);

已经到了项目后期,现在再让大家去改这些有些说不过去,查了下官网,发现有自定义标签,正好解决的就是这样的问题。

而这次问题的出现,还是源于我们对于JavaDoc生成不熟悉。

废话不多说,直接看例子:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-javadoc-plugin</artifactId>
  4. <version>2.9.1</version>
  5. <configuration>
  6. <aggregate>true</aggregate>
  7. <tags>
  8. <tag>
  9. <name>Description</name>
  10. <placement>a</placement>
  11. <head>用途</head>
  12. </tag>
  13. </tags>
  14. </configuration>
  15. </plugin>

说明:

1.name为你Java代码中的注解的名字

2. placement这个在官网上有8种,我也自己试了下,其实这个就是说你要把哪些(方法、字段、类)上面的注解放到JavaDoc中

3.head,如果不写这个,用的就是name,如果写了,那么显示效果如下:

这样,你就既可以定义自己的注释规范,又可以生成相应的JavaDoc文档了

自定义路径

        这个功能一般不会用到,只是顺便看了一下,就写下来吧。
        在这里需要叨念两句关于约定优于配置,在最初我用Maven的时候,就看到过这样的话,Maven目录可以不这样设置么?可以,你可以自己改。
        只能说我们在大部分时候,是不需要改这个,但不意味着我们在做的时候就可以把这个做死,这样于用户,于今后的维护来说,都不是一个好的选择。
        两句叨念完了,现在来看怎么设置吧:
  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-javadoc-plugin</artifactId>
  4. <version>2.9.1</version>
  5. <configuration>
  6. <reportOutputDirectory>../myoutput</reportOutputDirectory>
  7. <destDir>myapidocs</destDir>
  8. </configuration>
  9. </plugin>

说明:

        1.reportOutputDirectory是说的路径
        2.destDir是说的目标文件夹
        
        到这里Maven多模块下使用javadoc插件生成JavaDoc文档过程中遇到的问题就都解决了。

多模块Maven项目如何使用javadoc插件生成文档的更多相关文章

  1. 多模块Maven项目怎样使用javadoc插件生成文档

    需求 近期要对一个项目结构例如以下的Maven项目生成JavaDoc文档. Project                         |-- pom.xml                   ...

  2. <转>创建支持eclipse的多模块maven项目

    如何使用eclipse创建Maven工程及其子模块 1,首先创建一个父类工程   子模块继承父类工程      并在父类工程的pom.xml文件中定义引入的jar及其版本号     子模块可以引用 2 ...

  3. 使用eclipse生成文档(javadoc)

    使用eclipse生成文档(javadoc)主要有三种方法:1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步.在Java ...

  4. 使用Sphinx为你的python模块自动生成文档

    Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等. 安装 创建一个sphinx项目 下面的命令会 ...

  5. 使用eclipse生成文档(javadoc)主要有三种方法:

    使用eclipse生成文档(javadoc)主要有三种方法: 1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步. 在Ja ...

  6. 使用swagger在netcorewebapi项目中自动生成文档

    一.背景 随着前后端分离模式大行其道,我们需要将后端接口撰写成文档提供给前端,前端可以查看我们的接口,并测试,提高我们的开发效率,减少无效的沟通.在此情况下,通过代码自动生成文档,这种需求应运而生,s ...

  7. idea运行javadoc生成文档以及 报错编码gbk的不可映射字符坑

    将项目类信息生成文档 idea整合了javadoc的操作,可以一键生成doc文档 方法: 选中你要生成文档的项目 点击上方tools->Generate JavaDoc 运行即可 注意这里有一个 ...

  8. 第4天 JavaDoc生成文档&Java流程控制(第一节:用户交互Scanner)

    JavaDoc生成文档 javadoc命令是用来生成自己的API文档 参数信息: @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @ ...

  9. 为Unity项目生成文档(二)

    Unity项目生成文档 接着上篇文章:为Unity项目生成文档(一) .Net项目可在VS配置XML 我们可以在VS中通过配置来生成xml文件,但是unity的project,就算同样配置了xml文档 ...

随机推荐

  1. intel32指令中文版

    http://scc.qibebt.cas.cn/docs/optimization/VTune(TM)%20User's%20Guide/mergedProjects/analyzer_ec/mer ...

  2. SQL Server on Linux

    https://edu.aliyun.com/course/51/lesson/list?spm=5176.8764728.aliyun-edu-course-tab.2.4YyLGD&pre ...

  3. 有关AngularJS请求Web API资源的思路

    页面部分大致如下: <body ng-app="productManagement"> ... <div ng-include="'app/produc ...

  4. JS 判断 undefined 类型

    typeof 返回的是字符串,有六种可能:"number"."string"."boolean"."object".&q ...

  5. CCConfiguration::sharedConfiguration()->loadConfigFile cocos2d-x 中文乱码问题及国际化解决方案

    from:://http://www.cnblogs.com/sunguangran/archive/2013/07/29/3222660.html 将显示文本单独保存为文本文件 在cocos2d-x ...

  6. javax.servlet不存在问题的解决

    产生这个问题的原因是这个包在WEB服务器里才有,J2SE中没有,应该在J2EE中才有.因此必须告诉编译器这个包的位置. 正确的解决方案如下: 1. 搜索servlet-api.jar. 这个包应该在T ...

  7. Spring Framework 4.1.3 还是一样给力

    Spring Framework 4.1.3 发布,此版本是 4.1.x 系列的第三个维护版本,包括超过50 个 bug 修复和改进.本来是计划月末发布,但是想早些发布,配合这周要发布的 Spring ...

  8. Android之取消ViewPage+Fragment的预加载

    用过ViewPage+Fragment组合的童鞋自然知道这个问题,没有遇到的同学祝愿你们永远不会遇到,呵呵.直接上关键代码 注释:setUserVisibleHint每次fragment显示与隐藏都会 ...

  9. [Web 前端] 使用yarn代替npm作为node.js的模块管理器

    cp from : https://www.jianshu.com/p/bfe96f89da0e     Fast, reliable, and secure dependency managemen ...

  10. Unicode 和 UTF-8 的区别

    作者:于洋链接:https://www.zhihu.com/question/23374078/answer/69732605来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出 ...