我有一个Maven项目,在Netbeans中一直运行良好,但从6.9升级到7.1并不顺利。我收到以下错误:
在为foo.bar:baz:1.0.0构建有效模型时遇到了1个问题 [致命]不可解析的父POM:存储库系统处于脱机状态,但工件foo:bar-parent:pom:1.0.1在本地存储库中不可用。并且'parent.relativePath'指向错误的本地POM @第12行第13列 for project foo.bar:baz:1.0.0 at /Users/me/workspace/pom.xml
我发现Netbeans的这个bug ticket很好地描述了另一个人的问题但是使用“Reload POM”的建议不起作用,mvn validate
也没有。
这里有几个令人困惑的项目。
根据Maven POM intro页面,当父pom /项目位于不同于正常位置(其中“normal”为“../pom.xml”时,将使用relativePath属性。 “)。
在我的情况下,我的父项目实际上只是只是一个pom ,除了存储库(本地和远程)之外,它不存在于任何地方。即使它本地不存在,我也希望做一个辅助的“在线”构建(如建议的那样)可以修复Netbeans,但事实并非如此。
有一次,我在Netbeans之外手动更改了我的pom文件,NB内的项目自行修复。我以相同的方式手动修改子项目以使它们工作,但修复程序没有持续。几分钟后,“[unloadable]”绰号返回,但我不确切知道何时或是什么原因导致它返回。
我尝试使用Bundled v3.0.3 Maven,我的外部v3.0.2 Maven,删除我的~/.netbeans*
文件夹,删除我的.m2/repository
文件夹,复制他的 { {1}}到我的机器,删除所有版本的Netbeans并重新安装7.1,关闭并重新打开项目和应用程序,让Netbeans使用普通.m2/repository
,Build
选项从头开始构建项目以及错误对话框中的Clean and Build
选项,在命令行上从头开始构建然后导入到Netbeans,其任何及所有组合,似乎没什么关系。
现在我正在降级到6.9.1,但我很想知道是否有其他东西我可以尝试使其发挥作用。
答案 0 :(得分:3)
你的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 http://maven.apache.org/maven-v4_0_0.xsd">
这
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
Maven CLI也构建了它们,NetBeans 6.x ......但是NetBeans 7.x只构建了第一个。
答案 1 :(得分:2)
更新:我也设置了我的settings.xml ...... :(
<mirrors>
<mirror>
<id>javaforum</id>
<url>http://nexus.javaforum.hu/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>javaforum</id>
<url>http://nexus.javaforum.hu/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
现在可以使用NetBeans 7.x。
如果我删除/评论“存储库”部分:
* CLI (3.0.3) build is working
* NetBeans 7.x build is working but the project is "unloadable"
如果我删除/评论“镜像”部分:
* CLI (3.0-3) build isn't working
* NetBeans 7.x build is working, the project looks like good
所以,pom.xml修改不是必需的恕我直言......:)
答案 2 :(得分:2)
我不得不将pom.xml文件从我的repo复制到项目的pom.xml上面的一个目录级别,并重命名为pom.xml。不理想,但它有效。
答案 3 :(得分:2)
在尝试清理内部存储库(Archiva,使用repo组),简化我的settings.xml,然后将父POM添加到项目中后,我看到了运行NetBeans 7.1.x时出现的错误。
如果我删除项目中的父POM引用,问题就会消失。
如果我在settings.xml中包含一个有效的配置文件和一个有效的存储库部分,则问题就会消失。
如果我在项目POM中包含有效的存储库部分,问题就会消失。
我的父POM不是多模块项目的根。它只是像任何其他依赖项一样从存储库中提取。我没有一个我可以尝试使用父项的多模块项目。
无论如何,maven在没有该设置的情况下从命令行构建和部署我的项目就好了(即使使用父POM),但NetBeans本身似乎需要在某处定义存储库部分。
我觉得这是一个关于Netbeans如何对待子项目的错误。我的猜测是,它正在查找父级的默认位置位置(../pom.xml),当它找不到它时,尝试在定义的存储库中查找它。由于它没有定义,它会窒息。
Netbeans在尝试查找父POM时似乎忽略了镜像设置。