NetBeans IDE 在“清理和构建”或外部更改时发出异常编译器错误。IDE 无法识别 JPA 生成的静态元模型

Tin*_*iny 4 netbeans jpa java-ee-7 netbeans-8 jakarta-ee

我已经完全厌倦了使用 NetBeans IDE 8.x(目前使用 8.0.1)几个月了 - 它看起来就像地狱(说真的)。当对项目(尤其是 Java EE Web 应用程序 - 包含不同包中的数百个 Java 类)进行一些外部更改或尝试清理并构建项目(尤其是企业模块)时,项目的后台扫描启动,这会在几乎所有类中异常传播编译时错误,其中 EJB模块中使用JPA 生成的静态元模型中的类,如下面的快照所示。

在此输入图像描述

令人惊讶的是,如果在 IDE 中打开这些错误的类,IDE 不再显示编译时错误(由红色卷线表示) - 我不能说出原因,因为我自己也不知道。

有时,如果 IDE 重新启动,它会启动项目后台扫描,这可能会消除这些错误(在大多数情况下不会),如果 IDE 一次又一次重新启动至少 10 次!

这种情况发生的时间和原因是相当不确定的,但有一点是确定的——它的发生是因为JPA 生成的静态元模型。IDE 显然不知道以下划线结尾的类(元模型的类)。这只是浪费时间——构建一个应用程序需要几个小时或几天的时间——我不得不从头开始一个一个地重新创建所有这些类好几次。


在 8.x 版本之前,这种情况不会发生。8.0 和 8.0.1 都有相同的问题(我什至不太确定这是否是一个问题。在使用 NetBeans 8.0 时,我错误地认为以后的版本不会强加此行为)。


为了重现这个问题,

  • 应用程序必须具有 JPA 生成的静态元模型。
  • 应用程序应该(不是必须)使用包含远程 EJB 接口的类库。

在非常小的应用程序中,这可能会发生,也可能不会发生(我自己无法很好地确认这个问题的原因,也不能对此说什么)。


有人在使用 NetBeans IDE(尤其是 8.x)时遇到此类问题吗?这使得使用此 IDE 开发应用程序几乎不可能——这只是一种挫败感?IDE 是否有一些我可能缺少的设置?我可能以错误的方式部署应用程序吗?

我只能说一件事 - IDE 的项目后台扫描执行不正确,或者简直就是地狱。

我部署应用程序的方式(Java EE 包含一些由类库保存的远程 EJB(包括许多本地 EJB

  • 清理并构建类库
  • 清理并构建企业应用程序(IDE 用三角形表示的 EJB 模块)(这一步是罪魁祸首)
  • 再次清理并构建类库(完成上述两步后)
  • 部署应用程序

这些步骤是在第一次构建应用程序或对应用程序进行一些重大更改时执行的。否则,只需最后两个步骤就足以将应用程序部署到服务器(我通常这样做)。

有了这个问题,几乎无法继续下去。有没有(至少是暂时的)解决方案/解决方法?

另外一件事。这不仅发生在 Java EE 应用程序中,而且我有另一个使用 Spring 的项目也经常发生这个问题。


编辑 :

有时(再次不确定何时会发生这种情况),包括类库子菜单的清理和构建在内的主要选项被禁用,阻止我们执行清理和构建,如下面的快照所示(右键单击类库以打开子菜单) )。

在此输入图像描述

当 IDE 重新启动随机次数(1 次、2 次、5 次、10 次甚至更多次。完全不确定重新启动 IDE 多少次可以使子菜单中的这些选项启用)时,会启用哪些选项。


编辑2:

该应用程序使用以下主要组件。

  • JSF 2.2.8-02
  • PrimeFaces 5.1(社区版本)
  • PrimeFaces 扩展 2.1.0(社区版本)
  • OmniFaces 1.8.1
  • 具有 JPA 2.1 的 EclipseLink 2.5.2(以及 EclipseLink JPA ModelGen)
  • Java EE 7
  • GlassFish 服务器 4.1
  • NetBeans IDE 8.0.1
  • JDK 8u25

Oli*_*ger 6

当您在“项目”选项卡中的类上看到不正确的错误指示符时,请尝试以下操作:从菜单中选择“源”->“扫描外部更改”。