我在我的机器上检查了许多Maven 项目,格式如下:
my-project/
pom.xml
my-other-project/
pom.xml
Run Code Online (Sandbox Code Playgroud)
my-other-project声明POM文件my-project将用作父级.问题是my-project它还没有在maven存储库中,这些是两个独立的项目,因此maven无法找到本地搜索的父POM.有没有办法告诉Maven my-project/在搜索存储库之前查找父POM?
这是我在运行时得到的确切错误mvn package:
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/com/mycom/my-project/1.0.0/pom-base-1.0.0.pom
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for com.mycom:my-other-project:1.0.0: Could not find artifact com.mycom:pom-base:pom:1.0.0 in central (https://repo.maven.apache.org/maven2) and 'parent.relativePath' points at wrong local POM @ line 39, column 11
Run Code Online (Sandbox Code Playgroud)
编辑:
可以<relativePath>../my-project</relativePath在父声明中设置,但如果这可以自动发生会很好.
relativePath如果您不想在存储库中包含本地项目,这是一种方法。如参考文档中所述,这就是该元素的用途:
检出中父pom.xml文件的相对路径。如果未指定,则默认为
../pom.xml。Maven首先在文件系统上的该位置中查找父POM,然后在本地存储库中查找,最后在远程仓库中查找。relativePath允许您选择其他位置,例如在结构平坦或没有中间父POM的情况下更深的位置。但是,组ID,工件ID和版本仍然是必需的,并且必须与给定位置中的文件匹配,否则它将恢复为POM的存储库。此功能仅用于增强该项目的本地结帐中的开发。如果您要禁用该功能并始终从存储库解析父POM,请将值设置为空字符串。
您可以安装my-project在本地 Maven 存储库中(默认位于~/.m2)。
为此,请转到my-project目录并使用mvn install命令。当此命令成功完成时,该mvn package命令应该成功。
| 归档时间: |
|
| 查看次数: |
4973 次 |
| 最近记录: |