【发布时间】:2013-06-20 07:09:40
【问题描述】:
我正在构建(多个)复杂的webservice,其基础类型为XSD,来自各种标准(GML, SWE, XLINK, etc)。现在,我想将编译分解为更多步骤,最好是针对我正在使用的每个标准进行一个步骤。
优点:
1) 我可以添加创建工具库,我可以在每个标准的所有 Web 服务中重复使用这些工具库。
2) 我可以利用JAXB2 basics plugin 的强大功能,它似乎与maven-jaxb2-plugin (org.jvnet.jaxb2.maven2) 配合得非常好,并创建了例如接口绑定。这与 jaxws-maven-plugin 插件形成对比。
最后一步是使用org.jvnet.jax-ws-commons:maven-jaxb2-plugin 创建我可以在 EJB 中实现(或作为客户端调用)的实际 Web 服务。
现在,org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 插件允许我通过它们的 maven 坐标来引用剧集,作为它的一部分,如下所示:
<episodes>
<episode>
<groupId>org.example</groupId>
<artifactId>jaxb2-basics-test-episodes-a</artifactId>
</episode>
</episodes>
如何通过org.jvnet.jax-ws-commons:maven-jaxb2-plugin 做到这一点?我搜索了很多,并进行了这样的实验:
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>>maven-jaxb2-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
<wsdlDirectory>src/main/resources/</wsdlDirectory>
<wsdlFiles>
<wsdlFile>example.wsdl</wsdlFile>
</wsdlFiles>
<xjcArgs>
<xjcArg>-b</xjcArg>
<xjcArg>../cpt-xsd/target/generated-sources/xjc/META-INF/sun-jaxb.episode</xjcArg>
</xjcArgs>
<verbose>true</verbose>
</configuration>
</plugin>
从(已编译的)JAXB 依赖项目的目标目录中获取剧集文件。这有时甚至会在 maven 构建中失败(为什么我还没有弄清楚)。
我尝试使用目录文件进行映射,但是(我想我在某处看到了以 maven 坐标为目标的目录映射),但尚未成功。
【问题讨论】:
标签: java jaxb catalog maven-jaxb2-plugin