Maven父pom:无法解析导入的文档

时间:2017-03-24 12:10:25

标签: java maven parent-pom

在以下项目结构中:

Parent
    - ProjectA
    - ProjectB
    - etc.
当我从ProjectA内运行mvn clean install时,

ProjectA正确构建。

但是,当我从mvn clean install文件夹运行Parent时,出现以下错误:

[ERROR] Failed to execute goal org.apache.axis2:axis2-wsdl2code-maven-plugin:1.5.6:wsdl2code 
(default) on project ProjectA: Error parsing WSDL: 
WSDLException: faultCode=OTHER_ERROR: Unable to resolve imported document
at 'target/TcWebService.wsdl'.: java.io.FileNotFoundException: 
This file was not found: 
file:/D:{PATH_TO_PARENT}/target/TcWebService.wsdl -> [Help 1]

正确的路径为file:/D:{PATH_TO_PARENT}/ProjectA/target/TcWebService.wsdlProjectA部分缺失

Parent.pom

<modules>
    <module>ProjectA</module>
    <module>ProjectB</module>
    ...
</modules>

ProjectA pom:

<parent>
    <groupId>{MY.GROUP.ID}</groupId>
    <artifactId>jars</artifactId>
    <version>1.0</version>
    <relativePath>../pom.xml</relativePath>
</parent>

...

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <phase>validate</phase>
            <configuration>
                <tasks>
                    <copy file="src/main/wsdl/TcWebService.wsdl"
                          tofile="target/TcWebService.wsdl"/>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
 </plugin>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以采用更加专业的方法解决这个问题,这样maven就可以更轻松地按照你的要求去做。

maven-resources-plugin可以帮到您。

在此处阅读:https://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html

修改

我认为这里的问题是工作目录。当您运行子模块时,您位于子项目的目录中。所以childProject\target适合你。但是,当您运行主项目时,您在父目录中,这不起作用。因此,需要通过在复制任务的filetofile中提供文件的绝对路径来解决此问题。 ${project.basedir}可能有助于作为您路径的前缀。