在wsimport中使用maven坐标样式集



我正在构建(多个)复杂的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),然后或多或少地包括它,就像您已经做的那样。只是不要指向其他模块中的目录,这是不可靠的。

最新更新