迁移到 Maven 3.0.3 后,几个项目中的父 POM 无法再被解析。
这些项目按照默认方式进行结构化,因此我将 parent.relativePath 设置为 "../pom.xml"。
superpom (located in repository)
|-rootpom (located locally: no error)
|-|-parentpom (located locally: error resolving parent)
|-|-|-module1 (located locally: error resolving parent)
|-|-|-module2 (located locally: error resolving parent)
|-|-|-module3 (located locally: error resolving parent)
|-|-|-module4 (located locally: error resolving parent)
错误信息...
myGroup:myArtifactId:1.0的父POM无法解析,因为在本地存储库中缓存了无法找到myGroup:myParentArtifactId:1.0的错误http://myRepo.net/archiva/repository/maven2,直到maven2的更新间隔已过或强制更新并且'parent.relativePath'指向错误的本地POM @ myGroup:myParentArtifactId:1.0,C:\myProjectDir\parent\pom.xml,x行y列 -> [帮助 2]
...似乎表明在存储库中搜索pom文件,因此我想知道为什么在查找其他位置之前没有在本地找到pom文件。
我读过当在settings.xml中定义多个存储库时,maven3可能会感到困惑,但这通常发生在搜索存储库中的pom文件时,而不是在本地。
更新
到目前为止,我们在父项目级别(parentpom)上执行了maven构建-这是一个我不知道很重要的事实,因为直到现在maven2都成功完成了。
使用maven3时,这似乎很重要。在根项目级别(rootpom)上执行maven3时,构建成功结束。因此,我的问题得到了解决。
由于我不一定想回答自己的问题,也许有人可以解释为什么maven3现在会这样或者为什么旧方法是错误的。
relativePath
为文件夹名称吗?(例如,../
,不需要pom.xml
) - palacsint