更改cxf-codegen-plugin的执行目录

时间:2012-04-13 10:47:20

标签: maven cxf

我正在构建一些工具来(自动)将大型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(系统找不到指定的路径)

有谁知道如何:

  1. 在特定的maven阶段更改插件的执行根目录?
  2. 或强制cfx-codegen-plugin使用替代执行root?
  3. 谢谢, sjaak

0 个答案:

没有答案