Maven多模块不可解析父级

Maven多模块不可解析父级,maven,Maven,我在maven中面临一个构建错误,我无法解释,我的项目布局是: root |--parent |--project 其中root(聚合器)和project都使用“parent”作为其父级 我在另一个项目中使用了这个布局,maven能够构建这个项目。 然而,在这个项目中,如果我试图构建,我会在不可解析的父pom上失败: [ERROR] [ERROR] Some problems were encountered while processing the POMs: [FATAL] Non-res

我在maven中面临一个构建错误,我无法解释,我的项目布局是:

root
|--parent
|--project
其中root(聚合器)和project都使用“parent”作为其父级

我在另一个项目中使用了这个布局,maven能够构建这个项目。 然而,在这个项目中,如果我试图构建,我会在不可解析的父pom上失败:

[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for maven.test:maven-test-project:9.9.9-SNAPSHOT: Could not find artifact maven.test:maven-test-parent:pom:9.9.9-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 11, column 10
如果我从根(聚合器)pom中删除父节点,maven就能够成功地构建项目

如果我使用maven的旧版本(3.3而不是3.6),那么项目也会成功构建

以下是所有3个项目的POM:

根目录

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>maven.test</groupId>
    <artifactId>maven-test</artifactId>
    <version>9.9.9-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Maven Test</name>

    <parent>
        <groupId>maven.test</groupId>
        <artifactId>maven-test-parent</artifactId>
        <version>9.9.9-SNAPSHOT</version>
        <relativePath>parent/pom.xml</relativePath>
    </parent>

    <modules>
        <module>parent</module>
        <module>project</module>
    </modules>

</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>maven.test</groupId>
    <artifactId>maven-test-parent</artifactId>
    <version>9.9.9-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Maven Parent</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
    </properties>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>maven-test-project</artifactId>
    <version>9.9.9-SNAPSHOT</version>

    <name>Maven Project</name>

    <parent>
        <groupId>maven.test</groupId>
        <artifactId>maven-test-parent</artifactId>
        <version>9.9.9-SNAPSHOT</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>
</project>

4.0.0
马文试验
马文试验
9.9.9-快照
聚甲醛
马文试验
马文试验
maven测试父级
9.9.9-快照
parent/pom.xml
父母亲
项目
家长

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>maven.test</groupId>
    <artifactId>maven-test</artifactId>
    <version>9.9.9-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Maven Test</name>

    <parent>
        <groupId>maven.test</groupId>
        <artifactId>maven-test-parent</artifactId>
        <version>9.9.9-SNAPSHOT</version>
        <relativePath>parent/pom.xml</relativePath>
    </parent>

    <modules>
        <module>parent</module>
        <module>project</module>
    </modules>

</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>maven.test</groupId>
    <artifactId>maven-test-parent</artifactId>
    <version>9.9.9-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Maven Parent</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
    </properties>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>maven-test-project</artifactId>
    <version>9.9.9-SNAPSHOT</version>

    <name>Maven Project</name>

    <parent>
        <groupId>maven.test</groupId>
        <artifactId>maven-test-parent</artifactId>
        <version>9.9.9-SNAPSHOT</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>
</project>

4.0.0
马文试验
maven测试父级
9.9.9-快照
聚甲醛
专业父母
UTF-8
1.8
${java.version}
${java.version}
项目

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>maven.test</groupId>
    <artifactId>maven-test</artifactId>
    <version>9.9.9-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Maven Test</name>

    <parent>
        <groupId>maven.test</groupId>
        <artifactId>maven-test-parent</artifactId>
        <version>9.9.9-SNAPSHOT</version>
        <relativePath>parent/pom.xml</relativePath>
    </parent>

    <modules>
        <module>parent</module>
        <module>project</module>
    </modules>

</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>maven.test</groupId>
    <artifactId>maven-test-parent</artifactId>
    <version>9.9.9-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Maven Parent</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
    </properties>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>maven-test-project</artifactId>
    <version>9.9.9-SNAPSHOT</version>

    <name>Maven Project</name>

    <parent>
        <groupId>maven.test</groupId>
        <artifactId>maven-test-parent</artifactId>
        <version>9.9.9-SNAPSHOT</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>
</project>

4.0.0 
maven测试项目
9.9.9-快照
马文项目
马文试验
maven测试父级
9.9.9-快照
../parent/pom.xml

有一个概念问题


“root”不能同时是同一Maven模块“parent”的父级和子级

root
有一个模块
父级
并将其用作父级POM?这听起来很奇怪。你应该遵循约定而不是配置范式,让你的父母成为孩子的父母,不要使用其他孩子的兄弟姐妹的父母…@khmarbaise-我在其他项目中使用这个父母,所以我不能让它同时作为聚合器和父级。那么它就不属于目录树。您应该为父级创建一个单独的项目,这是正确的解决方案。它不是父级,它只是一个聚合器。父项目是“父”项目。请注意,此设置适用于较旧的maven版本。它在技术上可能可行,但其概念与maven不太一样。像这样的事情总是在崩溃的边缘。