是否有生成Builders的JAXB插件?

Asa*_*ika 11 java xml jaxb2 jaxb2-maven-plugin

您是否了解为生成的JAXB类生成Builder模式类的任何优秀JAXB插件?使用JAXB生成的类编写域是非常讨厌的.我看到有人在2010年写回了一个插件,但它没有使用最新的maven插件jaxb2-maven-plugin,它还要求你为每个不健壮的模式类型指定绑定.

Mir*_*emm 9

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

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

它包含一些有用的JAXB插件.您可以从github下载源代码和二进制文件,或从The Central Repository获取maven工件

希望这可以帮助.如果您有任何疑问,请问我,我就是那个开始它的人.


pul*_*hal 5

以下来自pom.xml文件的片段,使用 mavencxf-xjc-plugin生成 JAXB 类,并利用jaxb-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>
Run Code Online (Sandbox Code Playgroud)