Maven子模块不存在。

19

我对Maven不太熟悉。我从一个客户的SVN上检出了以下结构的项目:

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

位于“projectName”正下方的pom.xml(顶部的pom)正在构建这三个模块

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

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

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

问题是:是否应该在projectName-war下面像其他模块一样有一个pom.xml文件,以防客户忘记提交到SVN?

5个回答

37
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>

2
这就是解决我的问题的方法。浪费了一个多小时去查看其他地方。同时能够有一个解释会更好。 - Sid
1
将模块封装到配置文件中后,错误消息消失了,但构建过程完全忽略了这些模块。它没有实现构建模块的预期效果。 - Jozsef Frigo
我遇到了与Jozsef Frigo完全相同的问题,它可以构建但忽略模块。你解决了吗? - Neil J

8
问题是:projectName-war 底下是否应该有一个 pom.xml 文件?
简单来说,是的。
你已经找出了诀窍,但由于你没有提供 Maven 项目描述文件(即pom.xml),它将无法将 projectName-war 视为有效的子模块。
在 projectName-war 底下必须绝对存在一个 pom.xml 文件,并且它必须具有与父级声明模块下相匹配的 artifact id。
<artifactId>projectName-war</artifactId>

5
这个问题通常出现在您复制和粘贴子项目时。例如,我们有以下个别的子项目:
<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>

在初始构建期间,您的项目名称应与模块名称相同。这不需要添加<profiles>标签,因为<profiles>标签的目的是触发具有特定操作的构建。


在我的情况下发生了什么事情。 - Ravi

0

当我通过 IntelliJ 重命名一些模块时,遇到了这个错误:

我通过以下操作成功解决了这个问题:

右键单击每个模块的 pom.xml 文件,然后从出现的列表中点击 "添加为 Maven 模块"。


0

如果您的pom.xml文件位于正确的位置但其中存在错误,也会出现此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接