在多模块Maven项目中使用Enunciate

时间:2013-08-08 14:48:48

标签: maven-2 enunciate

我正在使用Enunciate为多模块Maven项目中的RestEasy服务生成文档。 在尝试获取响应对象属性的描述时,我遇到了一些doc生成问题。

例如,如果我的服务定义为:

@GET
@Path("access/account")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
Account getAccount(@Context HttpServletRequest hsr, @Context UriInfo info) throws RestApiException;

生成文档时,不会生成任何属性描述。

name                type    description
idProfile           int     (no documentation provided)
idLanguage          int     (no documentation provided)
idRegion            int     (no documentation provided)
userType            string  (no documentation provided) 

在我得到的所有响应对象中(没有提供文档)。一个重要的想法是所有的回应 类在服务所在的Maven模块中。响应类位于UTIL模块中。这些服务位于EJB模块中。

问题的原因绝对是多模块Maven项目,因为如果我定义了一个响应对象 该类也在EJB模块中,文档是完美的(也生成了描述)。

原因和解决方案在这里描述: https://github.com/stoicflame/enunciate/wiki/Multi-Module-Projects-%28Version-1%29

尽管我仍然不知道该怎么做以及在不同的poms(EJB和UTIL)中设置什么来解决我的问题。

任何帮助都是相关的。

2 个答案:

答案 0 :(得分:0)

那么您是否尝试按Multi-Module Projects中所述“导入”Account类?

<enunciate ...>
  <api-import pattern="com.mycompany.Account" />
  <api-import pattern="com.mycompany.*" />
  ...
</enunciate>

答案 1 :(得分:0)

问题解决了!!!

我必须:

  1. 按照Ryan的说法导入课程
  2. 在UTIL类的pom.xml中添加maven-source-plugin,其中包含所有响应对象
  3. 添加说明以获取引用类
  4. 中的方法

    结果是:

    JSON
    property    type    description
    idProfile   int     Description B.
    idLanguage  int     Description A.
    idRegion    int     Description E.
    userType    string  Description D.