jaxb2-basics-annotate with jaxws-maven-plugin configuration

时间:2017-05-06 22:21:35

标签: java jax-ws-customization jaxws-maven-plugin

我有一个maven配置,使用jaxws-maven-plugin从wsdl生成类文件。

我正在尝试使用jaxb2-basics-annotate插件来生成代,以允许我为生成的输出添加一些注释。

具体的插件配置是:

   <pluginManagement>
        <plugins>
            <plugin>
                <!-- This is the WSIMPORT plugin used to generate code from WSDL -->
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jaxws-maven-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <!-- Keep generated files -->
                    <keep>true</keep>
                    <!-- generated source files destination-->
                    <sourceDestDir>target/generated-sources</sourceDestDir>
                    <!-- this is so the xsd files can be accessed -->
                    <vmArgs>
                        <vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
                    </vmArgs>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

...

           <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxws-maven-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics-annotate</artifactId>
                    <version>1.0.2</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>travel-itinerary</id>
                    <goals>
                        <goal>wsimport</goal>
                    </goals>
                    <configuration>
                        <extension>true</extension>
                        <!--<args>-->
                            <!--<arg>-Xannotate</arg>-->
                        <!--</args>-->

当我将args注释掉时,我收到以下错误:

  

[错误]使用&#34; http://annox.dev.java.net&#34;自定义需要   &#34; -xannotate&#34;切换到启用此插件。

当我使用args时,我收到以下错误消息:

  

无法识别的参数-Xannotate

     

用法:wsimport [options]

     

其中[options]包括:

如果有人填写我的配置中的空白以使注释插件与jaxws-maven-plugin一起使用,我将不胜感激。

3 个答案:

答案 0 :(得分:0)

您可以将-X标志设置为xjcArgs而不是args

 <xjcArgs>
    <xjcArg>-Xannotate</xjcArg>
 </xjcArgs>

答案 1 :(得分:0)

我找到了解决方法here。通过添加-Dcom.sun.tools.xjc.XJCFacade.nohack=true系统属性,我可以解决此问题。

答案 2 :(得分:0)

我花了一些时间,但最终我找到了一个对我有用的组合: 可能最重要的是同时做这两个事情:定义xjcArg:-Xannotate 并在插件定义中定义对org.jvnet.jaxb2_commons:jaxb2-basics-annotate的依赖。