NetBeans中的“无法找到符号”错误

时间:2012-01-22 12:47:55

标签: netbeans maven

我使用NetBeans 7,Maven和NetBeans平台开展学校项目。该项目是使用“Maven / POM项目”项目模板创建的。它是一个多层“企业”应用程序,它使用多个模块(模型,集成,商务,演示,富客户端应用程序本身以及其他几个)。

这些模块之间存在依赖关系(但没有循环依赖关系)。问题是,无论是Maven还是NetBeans,都会让人感到困惑。有几种类型的问题在没有任何触发的情况下出现。我必须不断重新编译模块,关闭并重新打开NetBeans,清除NetBeans缓存,删除和读取依赖项等等,以便暂时删除问题。我在Windows XP SP3和Mac OS X上使用两种不同的NetBeans安装时遇到了这些问题。

症状是:

1)有时NetBeans决定不存在从另一个模块导入的类(并且我得到cannot find symbol错误。这种情况反复发生,有时发生在我几秒钟前成功编译的模块中。大部分时间,重新编译依赖没有帮助。必要的依赖项在POM中声明,jar文件存在,如果我在项目视图中展开它们,我可以看到有问题的类。

2)有时NetBeans会决定导入类的方法实际上不会抛出它声明要抛出的异常。由于对此类方法的调用通常由try块包围,因此NetBeans会显示错误消息a.package.SomeException is never thrown in body of corresponding try statement。如果我不删除try块,则由于NetBeans,模块无法编译。如果确实删除了块,则模块因Maven而无法编译(Maven,由于某种原因,可以看到异常,并抱怨它没有被捕获)。这也是反复发生的,我不太确定如何可靠地解决这个问题。

此时,Maven和NetBeans的问题非常严重,我无法真正处理该项目。如果我不必使用NetBeans和Maven,我现在就会回到vim和Makefiles。有人至少认识到这些问题吗?

编辑:我已经提交了这个项目,因为我已经完成了一些额外的工作,得到了20分中的30分,直到它离开了alpha阶段,我希望永远不会必须再次使用NetBeans。

5 个答案:

答案 0 :(得分:2)

我在Netbeans 7.0.0中的多模块maven项目中有一个is never thrown屏蔽cannot find symbol

有问题的符号是我maven主项目下另一个模块中的一个类。

我重构/重命名了未找到的类 - 这解决了这个问题。然后我将其重命名 - 问题仍然存在。

无论如何都不理想,但我想分享。

答案 1 :(得分:0)

我遇到了netbeans标记错误的问题'...异常永远不会在相应的try语句的主体中抛出' 项目将构建正常,但错误消息不会消失。 最后通过退出并重新打开netbeans来修复它。

我在Mac上,关闭按钮实际上并不关闭netbeans,需要完全退出。

答案 2 :(得分:0)

删除依赖项,构建(并获取编译错误),然后重新添加它(手动,从pom.xml或从接口)帮助我。但我确实认为这是一个重大错误。

答案 3 :(得分:0)

我使用NetBeans 8.0.2遇到过这个问题。问题显然与项目lombok有关,但我不知道为什么会这样。我安装了maven并在我的每个项目上进行了“mvn clean install”,它似乎解决了这个问题。之后NetBeans又开始工作了。

答案 4 :(得分:-1)

如果您有多个项目,请注意编译保存的netbeans选项,如果您的某些依赖项已启用此选项,则主项目的编译将失败,禁用自动编译保存,重新编译依赖项(清除和构建) )你应该没事。