apache cxf-codegen-plugin wsdl2java 相对 wsdlLocation

问题描述 投票:0回答:2

当我指定每个文件时,我可以使用具有相对 wsdlLocation 的生成类,例如

<wsdlOptions>
    <wsdlOption>
        <wsdl>${basedir}/src/main/resources/sample.wsdl</wsdl>
        <wsdlLocation>classpath:wsdl/sample.wsdl</wsdlLocation>
    </wsdlOption>
</wsdlOptions>

相反,我想使用

<wsdlRoot>
,这样我就不需要指定要为其生成类的每个 wsdl。

例如

<wsdlRoot>${basedir}/src/main/resources/wsdl</wsdlRoot>
<includes>
    <include>*.wsdl</include>
</includes>

这可以为目录中的每个 wsdl 生成类,但是,生成的类中的 wsdlLocation 是 wsdl 在我的计算机上所在位置的绝对路径。 我想要一个相对路径,这样代码更可移植。 使用 wsdlRoot 时是否可以指定相对的 wsdlLocation?

谢谢你

maven wsdl cxf wsdl2java cxf-codegen-plugin
2个回答
0
投票

您可以指定一个带有空值的额外选项

-wsdlLocation
。在生成的
XXX_Service
代码中,它显示
WSDL_LOCATION = null;

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>3.2.4</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${basedir}/src/main/java</sourceRoot>
                <wsdlRoot>${basedir}/src/main/webapp/WEB-INF/wsdl/</wsdlRoot>
                <defaultOptions>
                    <defaultExcludesNamespace>true</defaultExcludesNamespace>
                    <extraargs>
                        <extraarg>-wsdlLocation</extraarg>
                        <extraarg> </extraarg>
                    </extraargs>
                </defaultOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

您可以在我之前的 CXF 项目的

pom.xml
中找到类似的摘录:https://github.com/htr3n/loan-approval-portal/blob/master/pom.xml


0
投票

以下对我有用:

                        <includes>
                        <include>*/*.wsdl</include>
                        </includes>
                        <wsdlRoot>${project.basedir}/src/main/wsdl</wsdlRoot>
© www.soinside.com 2019 - 2024. All rights reserved.