2017-09-26 109 views
-1

我们拥有使用JAXB从XSD生成的现有bean。 有很多(真的)XSD文件,因此编译该部分需要一些时间。我们有一个自定义的Maven插件,通过读取XSD来生成所有bean的HTML目录。使用Java Bean Validation注释从POJO生成文档

我们希望摆脱JAXB,因为XSD中的文档没有保存在生成​​的bean中,并且某些以XML表达的约束没有正确地转换为Java或者没有足够强大的执行。

我们希望使用Java Bean Validation注释(必要时使用自定义注释)。

您是否知道现有的插件/库/是否将现有的Javadoc注释与Java Bean Validation注释中生成的文档合并?

import lombok.Getter; 
import lombok.Setter; 

import javax.validation.constraints.NotNull; 
import javax.validation.constraints.Size; 

/** 
* Documentation... 
*/ 
@Getter 
@Setter 
public class Bean { 

    /** 
    * Documentation with javadoc annotations 
    */ 
    @NotNull 
    @Size(min = 3, max = 20) 
    private String message; 

} 

例如,对于message属性的文件看起来像:

用的javadoc注释

文档
“消息” 不应该为空。
“消息”大小必须介于3到20个字符之间。

回答

0

您应该尝试使用JAutoDoc插件来生成Javadoc(eclipse,STS,..)。它有生成的选择:替换现有的,完整的现有的,保持现有的。最重要的是,你可以自定义各种选择。 链接市场:https://marketplace.eclipse.org/content/jautodoc

+0

不幸的是Eclipse插件不是一个选项。我知道我说“无论如何”。除了Eclipse的东西,它是什么;-)。我想要一些IDE不可知的东西(可以在构建服务器上运行等)。 – florian

0

Bean验证约束注释都已经生成的Javadoc(或任何注释真的是元注解为@Documented)的一部分。如果这还不够,可以考虑编写一个自定义doclet,其中添加了该约束元数据的文本表示。

+0

顺便说一句。有人在Hibernate论坛[提到](https://forum.hibernate.org/viewtopic.php?f=9&t=1044569)上说他正在开发一个doclet。我不确定他是否发表过他的作品,我刚刚在论坛上再次提出要求。 – Gunnar

+0

看起来像@Documented注释转换为将被复制到生成的HTML Javadoc的注释。 '@NotNull @Size(min = 3, max = 20) 私有字符串消息 带有javadoc注释的文档。我宁愿看到文字。 – florian

+0

对,就是我上面说的:) – Gunnar