생성 된 JAXB 클래스에 대한 빌더 패턴 클래스를 생성 한 좋은 JAXB 플러그인을 알고 있습니까? JAXB 생성 클래스를 사용하여 도메인을 작성하는 것은 정말 불쾌합니다. 2010 년에 누군가가 쓴 플러그인을 보았지만 가장 최신의 maven plugin 인 jaxb2-maven-plugin을 사용하지 않았으며, 강력하지 않은 각 스키마 유형에 대한 바인딩을 지정해야합니다.Builders를 생성하는 JAXB Plugin이 있습니까?
는답변
pom.xml
파일에서 다음 코드는 JAXB 클래스를 생성 받는다는 cxf-xjc-plugin
을 사용하고, 또한 점착성을 바탕으로 fluent interfaces ... 정확히 자신의 완전한 빌더 패턴되지 않는 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>
예, 이제 JAXB 생성 클래스에 유창한 빌더를 생성하는 플러그인이 있습니다. 유용 JAXB 플러그인의 몇 가지를 포함
https://github.com/mklemm/jaxb2-rich-contract-plugin
에 GitHub의 프로젝트가있다. github에서 소스 및 바이너리를 다운로드 할 수 있습니다.
희망이 있습니다. 궁금한 점이 있으면 저에게 묻습니다. 나는 그것을 시작한 사람입니다.
dtd에서 클래스를 생성 할 때 플러그인을 사용하여 빌더를 생성 할 수 있습니까? – mejas
아직 시도한 사람이 없지만 DTD와 함께 작동하지 않는다고 가정합니다. –
ObjectFactory 클래스를 생성 했습니까? –
'jaxb-fluent-api'가'cxf-xjc-plugin'으로 어떻게 든 구성 될 수 있다면 훌륭한 해결책이 될지 모르지만 그게 가능한지 확실하지 않습니다. 그것보다 당신이 이미 retepTools에 비틀 거린 것처럼 들리지만 http://blog.retep.org/2010/05/18/implementing-builders-with-jaxb-generated-objects/2/ – pulkitsinghal
이 플러그인은 불변의 것을 생성합니다. 클래스 및 선택적 빌더 - https://github.com/sabomichal/immutable-xjc – miso