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

 

目录(?)[+]

 

需求

最近要对一个项目结构如下的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. epoll的LT和ET使用EPOLLONESHOT

    epoll有两种触发的方式即LT(水平触发)和ET(边缘触发)两种,在前者,只要存在着事件就会不断的触发,直到处理完成,而后者只触发一次相同事件或者说只在从非触发到触发两个状态转换的时候儿才触发. 这 ...

  2. 基于设备树的TQ2440的中断(1)

    作者 姓名:彭东林 E-mail:pengdonglin137@163.com QQ:405728433 平台 板子:TQ2440 内核:Linux-4.9 u-boot: 2015.04 工具链: ...

  3. AngularJS中module的导入导出

    关于AngularJS中module的导入导出,在Bob告诉我之前还没写过,谢谢Bob在这方面的指导,给到我案例代码. 在AngularJS实际项目中,我们可能需要把针对某个领域的各个方面放在不同的m ...

  4. C#交换两个变量值的多种写法

    在学习.Net/C#或者任何一门面向对象语言的初期,大家都写过交换两个变量值,通常是通过临时变量来实现.本篇使用多种方式实现两个变量值的交换. 假设int x =1; int y = 2;现在交换两个 ...

  5. 在ASP.NET MVC中实现登录后回到原先的界面

    有这样的一个需求:提交表单,如果用户没有登录,就跳转到登录页,登录后,跳转到原先表单提交这个页面,而且需要保持提交表单界面的数据. 提交表单的页面是一个强类型视图页,如果不考虑需要保持提交表单界面的数 ...

  6. Jenkins CI CD

    原文:https://www.sunjianhua.cn/archives/jenkins-ci-cd.html 1.安装git 以下为简单应用,适合无gitlab服务器用户. #在git服务器(19 ...

  7. View Programming Guide for iOS_读书笔记

    关于Window的定义的要点 Windows do not have any visible content themselves but provide a basic container for ...

  8. Linux tar包相关命令

    tar [-j|-z][cv][-f 新建的文件名] filename... <==打包与压缩 tar [-j|-z][tv][-f 新建的文件名]   <==查看文件名 tar [-j| ...

  9. nginx反向代理vue访问时浏览器加载失败,出现 ERR_CONTENT_LENGTH_MISMATCH 问题

    问题说明:测试机上部署了一套业务环境,nginx反向代理tomcat,在访问时长时间处于加载中,十分缓慢! 通过浏览器调试(F12键->Console),发现有错误ERR_CONTENT_LEN ...

  10. Mysql添加和删除唯一索引、主键

    1.PRIMARY KEY(主键索引) 添加 ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` );删除 ALTER TABLE `table_n ...