【发布时间】:2012-01-22 12:47:54
【问题描述】:
我使用 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。
【问题讨论】:
-
尝试在命令行中使用 maven 在 netbeans 之外的项目中,看看问题是来自 netbeans 还是 maven。
-
我刚刚升级到 NetBeans 7.1。现在,Maven 编译一切都没有问题,但 NetBeans 仍然在某些文件中显示找不到符号。
-
我只是想知道这些事情是如何发生的。怎么可能在这个...软件中存在这个重大错误,使它几乎无法使用,每个人都假装它不存在?
-
在netbeans中,你确定你的项目是maven项目吗? (-> 在项目窗口中,项目标志节点是一个杯子,左上角有一个小“m”)。
-
它是maven项目好吧,除了它是一个使用maven的NetBeans平台应用程序,所以模块容器的标志看起来像字母“ma”,各个模块的标志看起来像带有“m”的拼图"在角落里。