我正在构建(多个)复杂的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坐标为目标的目录映射),但尚未成功。
您知道OGC模式和工具项目吗?(免责声明:我是作者。)
现在,回答你的问题。我猜org.jvnet.jax-ws-commons:maven-jaxb2-plugin
不支持您所说的"Maven坐标"。这是我专门为我的org.jvnet.jaxb2.maven2:maven-jaxb2-plugin
实现的功能(免责声明:我是作者)。
另一方面,episode文件只是一个JAXB绑定文件。因此,您可以简单地从JAR工件中提取这个文件(例如使用maven-dependency-plugin
),然后或多或少地包括它,就像您已经做的那样。只是不要指向其他模块中的目录,这是不可靠的。