【问题标题】:NetBeans doesn't recognize that dependency is a local project - how to fix?NetBeans 无法识别依赖项是本地项目 - 如何修复?
【发布时间】:2020-08-30 14:24:48
【问题描述】:

我有两对在 NetBeans 中开发的项目,它们都有一个 GUI 项目和一个库项目,其中 GUI 项目依赖于库之一。在其中一个中,NetBeans 识别出依赖项是本地的,并用 Ma 符号表示,如下所示,依赖项项目为绿色:

这提供了一些不错的功能,最值得注意的是 GUI 项目中的“导航至”(ctrl+单击)功能将我带到库项目中的源代码。我也不必为 GUI 项目手动重建库项目来获取任何更改。

但是,对于另一对项目,NetBeans 会发现依赖项位于我的本地 Maven 存储库中,但不会识别源代码是它也已打开的 Maven 项目:

我尝试查看所有右键单击菜单选项,从 NetBeans GUI 中删除和重新添加依赖项,比较 pom.xml,比较 nb-actions.xml 和 nb-configuration.xml,但是找不到任何解释为什么一个图书馆被认为是本地图书馆,而另一个图书馆不是。我在网上找到的唯一信息是http://wiki.netbeans.org/MavenBestPractices,其中注明:

"提示:如果打开其他项目依赖的项目,其他项目中的图标会变为“maven 项目”图标,表示 IDE 知道项目之间的链接。但是这样的链接是只有在依赖和项目声明中的groupId、artifactId和version都匹配时才建立。经常出现的问题是你在你的库项目中更改了一个API签名,但应用程序却没有启动。通常是由应用程序引起的正在使用旧版本的库工件。工件图标可以帮助您追踪这些问题。"

但是,我已经验证了 GUI 项目的 pom.xml 依赖于正在构建的库项目中的版本,甚至使 GUI 项目和库之间的版本相同,并且“maven 项目”图标仍然存在不显示。

有谁知道如何调试这个问题,或者我在某处缺少如何使此链接正常工作的魔法设置?我一直在尝试使用 NetBeans 8.2 和 8.1,并且正在为成功的项目对和不成功的项目使用 Java 8 进行编译。

【问题讨论】:

  • 你是如何在第二个项目中添加“jimagereader”依赖的?您可以尝试将其从 pom 中删除,然后从“打开的项目”中重新添加。单击项目的依赖项节点,选择“添加依赖项”,然后切换到“打开项目”选项卡并通过该选项卡添加依赖项。您可能还想尝试 NetBeans 11.3
  • 最初是通过 pom 进行的,但今晚调试时,我按照您的描述通过“添加依赖项”->“打开项目”进行了尝试。它似乎没有任何区别。我刚刚下载了 11.3,并在那里观察到了相同的行为。使用 Java 8 和用于 GUI 的 Java 14 + 用于库的 Java 8 进行了测试(该库与 Java 14 存在一些兼容性问题)。

标签: maven netbeans java-8 dependency-management netbeans-8


【解决方案1】:

几年后重温该项目,我终于找到了一种方法来让依赖项在本地连接。

更改依赖的工件 ID,并更新依赖的 pom 以匹配新名称。

这无疑是绕过根本问题而不是解决它,但鉴于无法查明根本原因,这似乎是目前最好的选择。

【讨论】:

    猜你喜欢
    • 2016-03-04
    • 1970-01-01
    • 2023-01-18
    • 2011-08-29
    • 2021-04-16
    • 2016-11-05
    • 2013-08-21
    • 2021-01-11
    • 1970-01-01
    相关资源
    最近更新 更多