我在NetBeans中开发了两对项目,这两个项目都有一个GUI项目和一个库项目,其中GUI项目依赖于库项目。在其中一个项目中,NetBeans识别出依赖项是本地的,并使用Ma符号表示,如下所示,依赖项项目为绿色:
这提供了一些很好的功能,最值得注意的是GUI项目中的“Navigate to”(Ctrl+单击)功能将我带到库项目中的源代码。我也不必为GUI项目手动重新构建库项目来获取任何更改。
但是,对于另一对项目,NetBeans会发现依赖项位于本地Maven存储库中,但无法识别源代码是它也打开得Maven项目:
我尝试过查看所有右键单击菜单选项,从NetBeans GUI中删除和重新添加依赖项,比较pom.xml,比较nb-actions.xml和nb-configuration.xml,但是没有找到任何解释,为什么一个库被识别为本地库,而另一个库却不是。我在网上找到的唯一信息是http://wiki.netbeans.org/MavenBestPractices,其中写道:
“* 提示:如果打开其他项目所依赖得项目,则其他项目中得图标将更改为“maven项目”图标,表示IDE知道项目之间得链接.但是,仅当依赖项与项目声明中得groupId,artifactId与版本全部匹配时,才会建立此类链接.经常出现得问题是,您更改了库项目中得API签名,但应用程序无法正常工作。通常是因为应用程序使用的是旧版本的库工件。工件图标可以帮助您跟踪这些问题。*”
但是,我已经验证了GUI项目的pom.xml依赖于库项目中构建的版本,甚至使GUI项目和库之间的版本完全相同,但“maven项目”图标仍然没有显示。
有人知道如何调试这个问题吗,或者我是否遗漏了一个神奇的设置来让这个链接工作?我已经尝试了NetBeans 8.2和8.1,并且正在用Java 8为成功的项目和不成功的项目进行编译。
1条答案
按热度按时间ulydmbyx1#
几年后,我重新访问了这个项目,终于找到了一种让依赖项在本地连接的方法。
更改依赖项的工件ID,并更新依赖pom以匹配新名称。
无可否认,这是绕过根本问题,而不是解决它,但考虑到无法查明根本原因,似乎是目前最好的选择。