Maven多模块不可解析父级
我在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
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不太一样。像这样的事情总是在崩溃的边缘。