使用 Java Bean Validation 注释从 POJO 生成文档
Generate documentation from POJO with Java Bean Validation annotations
我们有使用 JAXB 从 XSD 生成的现有 bean。
有很多(真的)XSD 文件,因此编译该部分需要一些时间。我们有一个自定义 Maven 插件,它通过读取 XSDs 生成所有 bean 的 HTML 目录。
我们想摆脱 JAXB,因为 XSD 中的文档没有保留在生成的 bean 中,并且 XML 中表达的一些约束没有正确转换为 Java 或执法力度不够。
我们想使用 Java Bean Validation 注释(必要时使用自定义注释)。
您是否知道现有的 plugin/library/whatever 会将现有的 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;
}
例如,对于消息 属性,文档如下所示:
Documentation with javadoc annotations
"message" should not be null.
"message" size must be between 3 and 20 characters.
您应该尝试使用 JAutoDoc 插件来生成 Javadoc(eclipse、STS、..)。它有生成选项:替换现有的、完整的现有的、保持现有的。最重要的是,您可以自定义各种选择。
Link 市场:https://marketplace.eclipse.org/content/jautodoc
Bean Validation 约束注解已经是生成的 JavaDoc 的一部分(或者任何真正用 @Documented
进行元注解的注解)。如果这还不够,您可以考虑编写自定义 doclet,添加该约束元数据的文本表示。
我们有使用 JAXB 从 XSD 生成的现有 bean。 有很多(真的)XSD 文件,因此编译该部分需要一些时间。我们有一个自定义 Maven 插件,它通过读取 XSDs 生成所有 bean 的 HTML 目录。
我们想摆脱 JAXB,因为 XSD 中的文档没有保留在生成的 bean 中,并且 XML 中表达的一些约束没有正确转换为 Java 或执法力度不够。
我们想使用 Java Bean Validation 注释(必要时使用自定义注释)。
您是否知道现有的 plugin/library/whatever 会将现有的 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;
}
例如,对于消息 属性,文档如下所示:
Documentation with javadoc annotations
"message" should not be null.
"message" size must be between 3 and 20 characters.
您应该尝试使用 JAutoDoc 插件来生成 Javadoc(eclipse、STS、..)。它有生成选项:替换现有的、完整的现有的、保持现有的。最重要的是,您可以自定义各种选择。 Link 市场:https://marketplace.eclipse.org/content/jautodoc
Bean Validation 约束注解已经是生成的 JavaDoc 的一部分(或者任何真正用 @Documented
进行元注解的注解)。如果这还不够,您可以考虑编写自定义 doclet,添加该约束元数据的文本表示。