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

 

目录(?)[+]

 

需求

最近要对一个项目结构如下的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. SQL Server on Linux

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

  2. C++ 实践总结

     对于一个应用程序而言,静态链接库可能被载入多次,而动态链接库仅仅会被载入一次. Gameloft面试之错误一 Event: 面试官说例如以下程序是能够链接通过的. class Base { Pu ...

  3. Delphi下让窗口不显示在任务栏的另类方法

    刚才看到了这篇东西<使窗口不在任务栏上显示(利用ITaskbarList接口)>,作者用ITaskList接口实现了隐藏窗口在任务栏按钮的功能,想起我好多年以前做的程序也有这样的功能,但是 ...

  4. XCODE调试时不显示变量值/指针地址的解决方案

    转:http://blog.csdn.net/samuelltk/article/details/41250151

  5. UINavigationController 、UINavigationBar 、UINavigationItem 超清晰直观详解(扩展)

    ios开发中如何隐藏各种bar 状态条Status Bar [UIApplication sharedApplication].statusBarHidden = YES; 或者 // iOS3.2+ ...

  6. C#编程(十七)----------Object类

    Object类 它是.NET Framework 中所有类的最终基类:它是类型层次结构的根.也就是说所有的类都拥有object类的方法,并能重写,调用. object的构造函数:public Obje ...

  7. Quartz:不要重复造轮子,一款企业级任务调度框架。

    背景 第一次遇到定时执行某些任务的需求时,很多朋友可能设计了一个小类库,这个类图提高了一个接口,然后由调度器调度所有注册的接口类型,我就是其中之一,随着接触的开源项目越来越多,我的某些开发习惯受到了影 ...

  8. 根据UIScrollView的contentOffset值精确控制动画

    根据UIScrollView的contentOffset值精确控制动画 效果 原理 根据方程精确计算每一个view在位移值x变化的时候的输出值,并根据这个值实现各种逻辑. 源码 https://git ...

  9. easyUi 的DataGrid的绑定

    html代码: @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Index_Layout.cshtml&quo ...

  10. Mock 模拟测试简介及 Mockito 使用入门

    Mock 是什么mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象.mock对象就是真实对象在调试期间的代 ...