【发布时间】:2012-01-25 15:40:35
【问题描述】:
我有一个在 Netbeans 中一直运行良好的 Maven 项目,但是从 6.9 升级到 7.1 并不顺利。我收到以下错误:
为 foo.bar:baz:1.0.0 构建有效模型时遇到了 1 个问题 [致命] 不可解析的父 POM:存储库系统处于脱机状态,但工件 foo:bar-parent:pom:1.0.1 在本地存储库中不可用。和 'parent.relativePath' 指向错误的本地 POM @ 第 12 行,第 13 列 对于 /Users/me/workspace/pom.xml 中的项目 foo.bar:baz:1.0.0
我为 Netbeans 找到了这个 bug ticket,它很好地描述了另一个人的问题,但是使用“重新加载 POM”的建议不起作用,mvn validate 也不起作用。
这里有几个令人困惑的项目。
- 在命令行上运行有效。
- 我的同事在 NB 7.1 上使用相同的(所有迹象表明)设置运行此项目。
- 在 Netbeans 中构建工作(构建成功)
- 使用错误对话框中提供的“Prime Build”按钮启动成功的构建。
- 文件没有丢失!它在(并且一直在)在本地仓库中!正是我所期望的:.m2/repository/foo/bar-parent/1.0.1/bar-parent-1.0.1.pom
根据Maven POM intro 页面,当您的父 pom/项目位于非正常位置(其中“正常”为“../pom.xml”)时,将使用 relativePath 属性.
在我的例子中,我的父项目实际上只是一个 pom,除了存储库(本地和远程)之外,它不存在于任何地方。即使它在本地不存在,我也希望进行二次“在线”构建(如建议的那样)可以修复 Netbeans,但事实并非如此。
有一次,我在 Netbeans 之外手动更改了我的 pom 文件,而 NB 中的项目自行修复。我以相同的方式手动修改了子项目以使它们工作,但修复并没有持续。几分钟后,“[unloadable]”这个名字又回来了,虽然我不知道它是什么时候或什么原因导致它回来。
我尝试使用捆绑的 v3.0.3 Maven,我的外部 v3.0.2 Maven,删除我的 ~/.netbeans* 文件夹,删除我的 .m2/repository 文件夹,将 他的 .m2/repository 复制到我的机器,删除所有版本的 Netbeans 并重新安装 7.1,关闭并重新打开项目和应用程序,让 Netbeans 使用正常的Build、Clean and Build 选项以及错误上的 Prime Build 选项从头开始构建项目对话框,在命令行上从头开始构建然后导入到 Netbeans,任何和所有组合,似乎没有任何问题。
目前我正在降级到 6.9.1,但我很想知道是否还有其他方法可以让这项工作发挥作用。
【问题讨论】:
标签: netbeans maven-3 netbeans-7