Maven子模块不存在

时间:2014-09-24 15:43:14

标签: java maven

我是Maven的新手。我从SVN检查了一个具有以下结构的客户的项目:

projectName
|--> pom.xml
|--> jetty-wrapper
     |--> pom.xml
     |--> bin
          |--> pom.xml
|--> projectName-common
     |--> pom.xml
     |--> bin
          |--> pom.xml
|--> projectName-war
     |--> bin
          |--> pom.xml

下面的pom.xml' projectName`(顶部的pom)正在构建三个模块

<modules>
    <module>projectName-common</module>
    <module>projectName-war</module>
    <module>jetty-wrapper</module>
</modules>

但是当从文件夹mvn clean install执行projectName时,它会出现以下错误

Child module [...]projectName\projectName-war\pom.xml of [...]projectName\pom.xml does not exist

问题是:projectName-war下方是否应该有一个pom.xml,就像我的客户可能忘记提交给SVN的其他模块一样?

5 个答案:

答案 0 :(得分:25)

Child module [...]projectName\projectName-war\pom.xml of [...]projectName\pom.xml does not exist

如果从命令行使用mvn install时遇到上述错误(同样的pom可能在eclipse中工作)你必须改变你的pom.xml

而不是下面的内容:

<modules>
        <module>../my-util</module>
        <module>../my-server</module>           
</modules>

按照以下内容(附在剖析器中):

<profiles>
    <profile>
        <modules>
            <module>../my-util</module>
            <module>../my-server</module>           
        </modules>
    </profile>
</profiles>

答案 1 :(得分:7)

  

问题是:在projectName-war

下面是否应该有一个pom.xml

只需输入

你已经找到了诀窍,因为你还没有向maven提供一个名为 pom.xml 的项目描述符,它就无法调用 projectName-war 一个有效的子模块。

projectName-war 下必须有一个 pom.xml 文件,并且它必须具有与声明该模块的父项下的工件ID相匹配的工件ID,即

<artifactId>projectName-war</artifactId>

答案 2 :(得分:0)

This issue usually comes when you copy and paste the child projects
For example, We have individual child projects as below
<artifactId>business-layer</artifactId> with project name as business-layer
<artifactId>service-layer</artifactId> with project name as **xyz**-layer
<modules>
        <module>business-layer</module>
        <module>**service-layer**</module>
</modules>

You project name during the initial build should be same as the module name. This need not require the <profiles> tag to be added as the purpose of profiles tag is to trigger builds with specific actions

答案 3 :(得分:0)

如果将pom.xml放在正确的位置但其中有错误,也会出现此问题。

答案 4 :(得分:0)

当我通过 IntelliJ 重命名某些模块时遇到此错误:

我通过执行以下操作设法解决了这个问题:

右键单击每个模块的 pom.xml,然后从出现的列表中单击“Add as Maven Module