java - 如何从 Pom.xml 中的 WSDL 生成 Java 源代码?

标签 java wsdl pom.xml

我有一个 pom 文件,它从设计如下的 WSDL 文件生成源代码。

    <executions>
        <execution>
        <id>Id1</id>
        <goals>
               <goal>wsimport</goal>
        </goals>
        <configuration>
            <wsdlLocation>wsdl/HelloService.wsdl</wsdlLocation>
         <wsdlFiles>
                <wsdlFile>HelloService.wsdl</wsdlFile>
        </wsdlFiles>
        <staleFile>
                ${project.build.directory}/jaxws/stale/HelloService.wsdl.stale
        </staleFile>
        </configuration>
        </execution>
        <execution>
        <id>Id2</id>
        <goals>
               <goal>wsimport</goal>
        </goals>
        <configuration>
            <wsdlLocation>wsdl/GoodByeService.wsdl</wsdlLocation>
         <wsdlFiles>
                <wsdlFile>GoodByeService.wsdl</wsdlFile>
        </wsdlFiles>
        <staleFile>
                ${project.build.directory}/jaxws/stale/GoodByeService.wsdl.stale
        </staleFile>
        </configuration>
        </execution>
    </executions>
    <configuration>
       <target>2.1</target>
       <xjcArgs>
        <xjcArg>-XautoNameResolution</xjcArg>
       </xjcArgs>
       <bindingDirectory>src/jaxws</bindingDirectory>
       <keep>true</keep>
       <wsdlDirectory>src/jaxws/wsdl</wsdlDirectory>
       <packageName>com.test.hello.soap</packageName>
    </configuration>

这工作得很好。并且两个 wsdl 文件都在 packageName (com.test.hello.soap) 中生成,但我希望在单独的 packageName 或位置中生成带有 Id2 的 wsdl 文件。

有人能告诉我怎么做吗?

最佳答案

<configuration>示例底部的标记定义了两次执行之间通用的配置值。

如果你想要<packageName>的值要为 Id1 设置一个值并为 Id2 设置另一个值,您只需移动 <packageName>配置值到 <configuration>每次执行都会阻塞。

所以,它看起来像:

<executions>
    <execution>
        <id>Id1</id>
        <goals>
            <goal>wsimport</goal>
        </goals>
        <configuration>
            <wsdlLocation>wsdl/HelloService.wsdl</wsdlLocation>
            <wsdlFiles>
                <wsdlFile>HelloService.wsdl</wsdlFile>
            </wsdlFiles>
            <staleFile>
                ${project.build.directory}/jaxws/stale/HelloService.wsdl.stale
            </staleFile>
            <!-- packageName value for Id1 -->
            <packageName>com.test.hello.soap</packageName>
        </configuration>
    </execution>
    <execution>
        <id>Id2</id>
        <goals>
           <goal>wsimport</goal>
        </goals>
        <configuration>
            <wsdlLocation>wsdl/GoodByeService.wsdl</wsdlLocation>
            <wsdlFiles>
                <wsdlFile>GoodByeService.wsdl</wsdlFile>
            </wsdlFiles>
            <staleFile>
                ${project.build.directory}/jaxws/stale/GoodByeService.wsdl.stale
            </staleFile>
            <!-- packageName value for Id2 -->
            <packageName>com.test.goodbye.soap</packageName>
        </configuration>
    </execution>
</executions>
<configuration>
    <target>2.1</target>
    <xjcArgs>
    <xjcArg>-XautoNameResolution</xjcArg>
    </xjcArgs>
    <bindingDirectory>src/jaxws</bindingDirectory>
    <keep>true</keep>
    <wsdlDirectory>src/jaxws/wsdl</wsdlDirectory>
    <!-- packageName has been removed from here -->
</configuration>

关于java - 如何从 Pom.xml 中的 WSDL 生成 Java 源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5140240/

相关文章:

wcf - 如何使用 WSDL 和 XSD 的注释生成 .NET 类

xml - 选择与 Powershell 有注释的模块

java - Maven:如何在两个独立的 Maven 项目中保持依赖版本同步

java - 无法解析符号(变量)

java - JFrame问题

java - Axis2生成的WSDL文件参数名称与实际名称不同

Maven 中的 Android Firebase 依赖项

java - 无法检查 int 是否为空

java - 更改日期输出格式

java - 为我的 WSDL 工作生成 Web 服务