迁移到Mavent 3.0.3后,几个项目中的父poms无法再解析.
Projects以默认方式构建,因此我将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)
Run Code Online (Sandbox Code Playgroud)
错误...
myArtifactId:用于为myGroup不可分辨父POM 1.0:未能找到为myGroup:myParentArtifactId:1.0 http://myRepo.net/archiva/repository/maven2在本地仓库被缓存,resollution不会重新尝试,直到更新间隔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现在这样做或为什么旧方法是错误的.
Eri*_*ley 34
确保你仔细检查你在child-pom中引用的版本是否与parent-pom中的版本相同.对于我来说,我的父母会碰到的版本,把它作为3.1.0.0-RELEASE,但在儿童POM,我仍参照通过relativePath以前的版本,并已就定义为2.0.0.0快照.如果我只包含父目录,或者在目录中附加了"pom.xml",则没有任何区别:
<parent>
<artifactId>eric-project-parent</artifactId>
<groupId>com.eric.common</groupId>
<!-- Should be 3.1.0.0-RELEASE -->
<version>2.0.0.0-SNAPSHOT</version>
<relativePath>
../../EricParentAsset/projects/eric-project-parent</relativePath>
</parent>
Run Code Online (Sandbox Code Playgroud)
'parent.relativePath'指向错误的本地POM @ myGroup:myParentArtifactId:1.0,C:\ myProjectDir\parent\pom.xml
这表明maven在本地搜索了父pom,但发现它不是正确的pom.
pom.xml的parentpom正确定义parent的pom作为pom.xml的rootpom?rootpom文件夹包含pom.xml以及该paretpom文件夹?| 归档时间: |
|
| 查看次数: |
124417 次 |
| 最近记录: |