【问题标题】:Unloadable Netbeans projects (pom not available in the local repository)可卸载的 Netbeans 项目(本地存储库中没有 pom)
【发布时间】: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 使用正常的BuildClean and Build 选项以及错误上的 Prime Build 选项从头开始构建项目对话框,在命令行上从头开始构建然后导入到 Netbeans,任何和所有组合,似乎没有任何问题。

目前我正在降级到 6.9.1,但我很想知道是否还有其他方法可以让这项工作发挥作用。

【问题讨论】:

    标签: netbeans maven-3 netbeans-7


    【解决方案1】:

    你的 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 只构建了第一个。

    【讨论】:

    • 我的已经匹配你的新版本了。感谢您发布一个较早的问题...我仍然在这里听(并且仍在 6.9.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 恕我直言... :)

    【讨论】:

    • 我清除了我的存储库并窃取了另一个开发人员的 settings.xml,问题自行解决了。但是,由于某种原因,settings.xml 还不够。重新安装我的旧存储库以节省带宽(它的大小是一个演出)导致问题再次出现!感谢 Gábor 的帮助!
    【解决方案3】:

    我不得不将 pom.xml 文件从我的 repo 复制到我项目的 pom.xml 上一级目录并重命名为 pom.xml。不理想,但有效。

    【讨论】:

      【解决方案4】:

      在尝试清理我的内部存储库(Archiva,使用 repo 组)、简化我的 settings.xml 然后将父 POM 添加到我的项目后,我在运行 NetBeans 7.1.x 时看到了所描述的错误。

      如果我删除项目中的父 POM 引用,问题就会消失。

      如果我在我的 settings.xml 中包含一个有效的存储库部分的活动配置文件,问题就会消失。

      如果我在项目 POM 中包含有效的存储库部分,问题就会消失。

      我的父 POM 不是多模块项目的根。它只是像任何其他依赖项一样从存储库中提取。我没有可以尝试的带有父级的多模块项目。

      不管怎样,maven 在没有该设置的情况下从命令行构建和部署我的项目都很好(即使使用父 POM),但 NetBeans 本身似乎需要在某个地方定义一个存储库部分。

      在我看来,Netbeans 如何处理子项目是一个错误。我的猜测是它正在查找父级(../pom.xml)的默认位置位置,当它找不到它时,会尝试在定义的存储库中查找它。由于它没有定义,它会窒息。

      Netbeans 在尝试查找父 POM 时似乎忽略了 mirrors 设置。

      【讨论】:

        【解决方案5】:

        我将父版本从 2.6.5 更改为 2.6.4

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.6.4</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-20
          • 2013-10-21
          • 2018-05-12
          • 1970-01-01
          • 1970-01-01
          • 2014-07-07
          相关资源
          最近更新 更多