【发布时间】: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