我建议将 CommonTypes.xsd 放在一个额外的 Maven 项目中,该项目部署到您的 Maven 存储库。为简单起见,我将其创建为 jar 项目,并且仅包含 xsd 文件。
您的 projectA 和 B 可以使用maven-dependency-plugin将 xsd 解压缩到 ProjectA/B 中您的 wsdl 期望 xsd 的特定文件夹:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>unpack</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>groupId</groupId>
<artifactId>commont-types-xsd</artifactId>
<version>1.0</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
也许您需要调整执行顺序,因为 jaxws-plugin 也在 generate-sources 循环中运行,或者可能将依赖插件更改为较早的阶段。
另一种解决方案是创建额外的项目并拥有类似于目录服务服务器的东西,如果您存储所有项目通用的 xsd 文件并且 wsdl 只需要指向此服务器 url。