gpt4 book ai didi

maven - 不同目录中的 XSD 和 WSDL

转载 作者:行者123 更新时间:2023-12-04 12:10:44 26 4
gpt4 key购买 nike

在我的工作中使用 jaxws-maven-plugin 进行代码生成。
我有两个项目分别是“普通”和“客户”。结构大致如下:

app/
  common/
   resource/
    some.xsd
  client/
   resource/
    some.wsdl

如何使用项目“common”中的 xsd 从项目“client”中的 wsdl 生成类?

pom.xml:
            <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<verbose>true</verbose>
<bindingFiles>
<bindingFile>${project.parent.basedir}/common/resource/some.xsd</bindingFile>
</bindingFiles>
<wsdlFiles>
<wsdlFile>/resource/some.wsdl</wsdlFile>
</wsdlFiles>
</configuration>
</execution>
</executions>
</plugin>

最佳答案

首先你应该遵守 maven 约定,使用 src/main/resources/资源目录。

完成后,您可以使用 maven-dependency-plugin:unpack-dependencies 解压 common jar 文件以访问 some.xsd :

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.stackoverflow.Q13155047</groupId>
<artifactId>app</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>client</artifactId>

<name>${project.artifactId}-${project.version}</name>

<properties>
<schema.location>${project.build.directory}/schemas</schema.location>
</properties>

<dependencies>
<dependency>
<groupId>com.stackoverflow.Q13155047</groupId>
<artifactId>common</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includes>**/*.xsd</includes>
<outputDirectory>${schema.location}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<verbose>true</verbose>
<bindingDirectory>${schema.location}</bindingDirectory>
<bindingFiles>
<bindingFile>some.xsd</bindingFile>
</bindingFiles>
<wsdlDirectory>src/main/resources</wsdlDirectory>
<wsdlFiles>
<wsdlFile>some.wsdl</wsdlFile>
</wsdlFiles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

jaxws-maven-plugin 绑定(bind)到 generate-sources相添加 maven-dependency-pluginjaxws-maven-plugin 之前并在同一阶段确保在应用 wsimport 之前解压缩所有内容目标。

确保 <bindingDirectory/><wsdlDirectory/>是正确的。

如果你有 *.xsd,你应该这样做另一个项目中的文件。 从不 使用相对路径访问其他项目。每个项目应该只使用依赖机制访问其他资源。

关于maven - 不同目录中的 XSD 和 WSDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13155047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com