如何在pom.xml中为wsdl2java指定前端?

时间:2012-12-31 17:42:19

标签: java maven cxf pom.xml wsdl2java

我发现this great tip有关向wsdl2java命令添加-fe jaxws21以使其生成符合jaxws 2.1的代码而不是2.2,但Maven的pom.xml似乎并不现代像这样添加喜欢这样的添加:

            <goals>
                <goal>wsdl2java -fe jaxws21</goal>
            </goals>

为pom.xml中使用的wsdl2java指定前端的正确方法是什么?

3 个答案:

答案 0 :(得分:13)

如果您使用的是cxf-codegen-plugin,则可以在extraargs元素中添加参数:

<executions>
    <execution>
        <configuration>
            <wsdlOptions>
                <wsdlOption>
                    <wsdl>...</wsdl>
                    <extraargs>
                        <extraarg>-fe</extraarg>
                        <extraarg>jaxws21</extraarg>
                    </extraargs>
                </wsdlOption>
            </wsdlOptions>
        </configuration>
        <goals>
            <goal>wsdl2java</goal>
        </goals>
    </execution>
</executions>

来源:http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html

答案 1 :(得分:2)

您可以在<frontEnd><wsdlOption>内使用<defaultOption>。如果包含多个WSDL并指定<wsdlRoot>

,则后者很有用
<executions>
    <execution>
        <configuration>
            <defaultOptions>
                <frontEnd>jaxws21</frontEnd>
            </defaultOptions>
            <wsdlRoot>${basedir}/src/main/wsdl</wsdlRoot>
            <includes>
                <include>*.wsdl</include>
            </includes>
        </configuration>
        <goals>
            <goal>wsdl2java</goal>
        </goals>
    </execution>
</executions>

答案 2 :(得分:0)

为补充@fishbone和@ tafit3的答案,另请参见Could not find jaxws21 frontend within classpath,因为看起来frontend是在次要cxf版本中添加的。

我尝试了他们的答案,但只有在将cxf-codegen-plugin升级到2.3.11后才能正常工作