有没有生成生成器的 JAXB 插件?

2022-09-03 14:15:19

您是否知道任何好的 JAXB 插件为生成的 JAXB 类生成了生成器模式类?使用 JAXB 生成的类编写域真的很讨厌。我看到有人在2010年写了一个插件,但它没有使用最新的maven插件jaxb2-maven-plugin,它还要求您为每种架构类型指定绑定,这是不可靠的。


答案 1

是的,现在有一个插件可以为JAXB生成的类生成流畅的构建器。有一个github项目

https://github.com/mklemm/jaxb2-rich-contract-plugin

它包含几个有用的 JAXB 插件。您可以从github下载源代码和二进制文件,或者从中央存储库获取maven工件

希望这有帮助。如果您有任何疑问,请问我,我是发起它的人。


答案 2

来自文件的以下片段,使用maven来生成JAXB类,并利用它来附加流畅的接口......这本身并不完全是一个完整的构建器模式...但我认为它们为人们在这个方向上取得了不错的进展留下了空间。pom.xmlcxf-xjc-pluginjaxb-fluent-api

        <!-- Used to generate source code based on XSD (schema) file -->
        <!-- http://cxf.apache.org/cxf-xjc-plugin.html -->
        <plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-xjc-plugin</artifactId>
            <version>2.7.7</version>
            <configuration>
                <extensions>
                    <extension>net.java.dev.jaxb2-commons:jaxb-fluent-api:2.1.8</extension>
                </extensions>
            </configuration>
            <executions>
                <execution>
                    <id>generate-xsd-sources</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>xsdtojava</goal>
                    </goals>
                    <configuration>
                        <sourceRoot>${basedir}/target/generated-sources/cxf-xjc/</sourceRoot>
                        <xsdOptions>
                            <xsdOption>
                                <xsd>${basedir}/src/main/wsdl/your.xsd</xsd>
                                <packagename>com.your.package.name</packagename>
                                <extensionArgs>
                                    <extensionArg>-Xfluent-api</extensionArg>
                                </extensionArgs>
                            </xsdOption>
                        </xsdOptions>
                    </configuration>
                </execution>
            </executions>
        </plugin>

推荐