我正在构建一些工具来(自动)将大型ANT项目转换为Maven结构。该项目包含webservices。因此,我无法更改输入wsdl / xsd文件。这是我输入的wsdl文件。它包含对poject base dir的类型定义的引用。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://schemas.test.com/test" name="Test">
<wsdl:import namespace="http://schemas.test.com/test" location="./src/wsdl/Test.xsd"/>
<wsdl:types>
</wsdl:types>
</wsdl:definitions>
这是我的maven插件配置:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
<wsdlRoot>${project.build.directory}/../src/wsdl/</wsdlRoot>
<includes>
<include>**/*.wsdl</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
构建子模块工作正常,因为cfx-codegen-plugin似乎将$ {project.basedir}作为执行根目录。
但是,当我尝试构建完整的多模块项目时,cfx-codegen-plugin似乎还原为project.parent.basedir。我收到以下构建错误:
引起:WSDLException(在/ wsdl:definitions / wsdl:import):faultCode = PARSER_ERROR:解析'./src/wsdl/Test.xsd'时出现问题:java.io.FileNotFoundException:C:\ Users \ test \ Desktop \ multimod \ src \ wsdl \ Test.xsd(系统找不到指定的路径)
有谁知道如何:
谢谢, sjaak