Eclipse JPA 项目变更事件处理程序(等待中)

Posted

技术标签:

【中文标题】Eclipse JPA 项目变更事件处理程序(等待中)【英文标题】:Eclipse JPA Project Change Event Handler (waiting) 【发布时间】:2013-11-08 02:43:48 【问题描述】:

为什么我每次尝试构建项目时都会收到“JPA 项目更改事件处理程序(等待)”。

我的工作区中有一些 JPA 项目,构建我的项目需要大量时间。它还会导致 GC 超出限制,为 eclipse 分配了 6GB 的堆空间

我目前正在使用 Kepler。 Helios 中没有出现此问题。

上面的错误有一些 BugZilla 条目,但我可以看到它们已修复。但在 4.3.1 中不可用?

上述问题的任何解决方案/变通方法?

谢谢

【问题讨论】:

我在 Luna 也看到了这个。 火星 2 也发生在我身上 在同一台机器上,对我来说在 Neon 而不是在火星... 发生在 Neon.2 中,甚至没有使用 JPA。 2020-03 也有 【参考方案1】:

我遇到了同样的问题,我最终发现这似乎是 a known bug in DALI(Eclipse Java 持久性工具),因为至少 eclipse 3.8 可能导致 save action in the java editor to be extremly slow。

由于这在 Kepler (20130614-0229) 中尚未完全解决,而且我在 eclipse 中不需要 JPT/DALI,我最终手动删除了 org.eclipse.jpt 功能和插件。

我所做的是:

1.) 退出日食

2.) 转到我的 eclipse 安装目录

cd eclipse

并执行以下步骤:

*尼克斯:

mkdir disabled
mkdir disabled/features disabled/plugins

mv plugins/org.eclipse.jpt.* disabled/plugins
mv features/org.eclipse.jpt.* disabled/features

窗口:

mkdir disabled
mkdir disabled\features 
mkdir disabled\plugins

move plugins\org.eclipse.jpt.* disabled\plugins
for /D /R %D in (features\org.eclipse.jpt.*) do move %D disabled\features

3.) 重新启动 Eclipse。

在启动后和首次使用时,eclipse 可能会警告您需要重新配置您的内容辅助。在您的首选项对话框中执行此操作。

完成。

卸载 DALI/JPT 后,我的 eclipse 感觉又好了。保存文件时不再阻塞 UI 并等待几秒钟。

【讨论】:

附带说明:Eclipse 团队可能应该尝试就发布中包含的和不可取消选择的功能/项目的数量展开讨论。它也许应该讨论禁用打包功能(例如 JPT)的方法。 与“JPA 项目更改事件处理程序”相同的问题导致 Eclipse Luna Build 4.4.0 停滞。如果您不需要 JPA 工具,@mwhs 解决方案也可以与 Luna 一起使用(安装 JBoss Hibernate 工具,如果您使用 Hibernate,它们会更强大) 不错的发现!不幸的是,DALI 错误自 2012 年 8 月 29 日以来已关闭,但 2 年后我在 Luna/STS 3.6.1 中仍然遇到同样的问题(在工作区之外有一个 Git 存储库)。我没有尝试你的解决方案,因为我也一直遇到远程系统资源管理器减速(即使我试图禁用它),所以最后我只是安装了一个用于 Java 的 vanilla Eclipse(甚至不是 JEE),添加了 JST 服务器适配器和使用download.eclipse.org/tools/ajdt/44/dev/update 的扩展、m2e-wtp 和 AspectJ 开发工具。闪电般的速度,终于。 我忘了提到命令 move features\org.eclipse.jpt.* disabled\features 对我不起作用(在 Win7 x64 上),我必须手动管理这些。我怀疑这是因为它包含文件夹而不是文件......好吧,我们只是说在你编写了足够多的 Windows 批处理脚本之后,你可能会开始质疑该语言是否实际上是由一个实验性 Microsoft 团队设计的完全由患有严重多动症的文盲醉酒黑猩猩组成。或者您可能只是想知道为什么没有将 OOTB Unix 支持添加到 Windows NTFS 版本的命令提示符中。 令人惊讶的是,这个问题在日食氧气中仍然存在(2017 年 9 月),而您的解决方案对我有用。【参考方案2】:

不知道为什么,我的 Neon Eclipse 还是有这个问题,好像很多人说的 Mars 版本没有修复。

我发现使用命令太麻烦,我通过Eclipse安装管理器删除了插件。

Neon:[帮助 > 安装详细信息 > 已安装的软件]

氧气:[Preferences > Install/Update > Installed Software]

只需选择插件“Dali Java Persistence Tools -JPA Support”并点击“卸载”即可。请注意我下面的屏幕没有那个,因为我已经卸载了。

【讨论】:

我也删除了“EclipseLink JPA Support”【参考方案3】:

我在 Neon.2 中仍然遇到同样的问题 我的解决方案是禁用 JPA 配置器。

打开 Eclipse 首选项(不是项目首选项!)。转到 Maven --> Java EE Integration 并禁用 JPA 配置器。我还禁用了 JAX-RS 配置器和 JSF 配置器。

从那时起,JPA 项目变更事件处理程序不再出现。

如果更改没有立即生效,请重新启动 Eclipse。

【讨论】:

太好了,谢谢,我在 Mac 上的 Photon 4.8.0 中仍然看到这个问题,这是唯一适合我的建议解决方案。 这对我有用。 在 Eclipse 2020 中对我不起作用【参考方案4】:

我已禁用(未选中)JPA 验证器。

现在,每当我保存文件时,它只显示 JPA 项目更改事件处理程序的一项任务,而 JPA Java 更改事件处理程序仅显示 2 或 3 个任务。

最重要的是,UI 挂起问题已解决。

请参考以下屏幕截图了解我所做的设置:

【讨论】:

太棒了 - 我没有选中 JPA 验证,但我仍然得到 JPA 更改事件处理程序! 这对我有用。事实上,最好禁用所有,只启用需要的。例如,如果您不使用“网络项目”,则不需要任何类型的 jsp*、jsf*、html 等。这有助于微调每个模块/项目的验证。节省宝贵的时间 - 很多。【参考方案5】:

还有另一种方法可以为项目禁用 JPA 工具,不需要卸载 JPA 功能/插件。我在https://bugs.eclipse.org/bugs/show_bug.cgi?id=386171 中提到的https://github.com/Jasig/uPortal 项目上进行了测试,并声称有类似的问题:

    切换到 Eclipse Projects Explorer View 以查看启用了 JPA Facet 的项目(应该有“JPA Content”节点); 选择具有“JPA 内容”节点的感兴趣项目,然后从上下文菜单中选择“属性”或按 Alt+Enter 以显示项目的“属性”对话框; 在带有类别的树中选择“Project Facets”节点; 清除项目构面列表中的 JPA 复选框,然后按 OK。

在为上面的 uportal-war 项目表单存储库禁用 JPA 方面后,我在 Eclipse 进度视图中看不到任何与 JPA 相关的作业。

【讨论】:

这可能对某些人有用,但对大多数人来说是行不通的。我从所有项目中删除了 JPA 方面,但我仍然遇到了一个挂起的环境。原因可能与 Maven 恢复 JPA 或类似的东西有关,但事实是,即使遵循这些非常合乎逻辑的步骤,这也不起作用。 上述解决方案在 Eclipse 2020-03 中为我工作。谢谢@dgolovin。【参考方案6】:

对 mwhs 对 windows 部分的回答稍作修正...

移动命令不适用于 .\features 文件夹,因为...好吧,坦率地说是因为 Windows 迟钝(您可以在文件上使用带有“移动”的通配符,但显然通配符 + 文件夹 == 忽略该命令)。无论如何,这应该可以替代他在回答中为步骤 2 提供的 windows sn-p。

作为批处理文件:

@echo off
set eclipse_dir=C:\eclipse_luna

mkdir disabled
mkdir disabled\features 
mkdir disabled\plugins

move plugins\org.eclipse.jpt.* disabled\plugins
for /f %%i in ('dir "%eclipse_dir%\features\org.eclipse.jpt.*" /ad /b') do (
    move "%eclipse_dir%\features\%%i" "%eclipse_dir%\disabled\features\%%i"
)

【讨论】:

【参考方案7】:

另外,如果你找不到你的 Eclipse 目录。因为,我在 mac 上遇到了这样的问题,我们可以记住 eclipse 正在使用 OSGi,所以我们可以转到目标平台并禁用上面描述的功能/插件:org.eclipse.jpt.*

【讨论】:

【参考方案8】:

eclipse photon 的解决方法似乎是:

    打开 ./eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info 删除以 org.eclipse.jpt 开头的行(可能只删除 org.eclipse.jpt.jpa)

【讨论】:

【参考方案9】:

这个问题最初是在 7 年前提出的……所以让我给出一个非常稳定的答案。

我正在使用 eclipse 2021-09(是的..几天前刚刚发布的那个)

关闭 JPA 项目更改事件处理程序(等待)

    确保没有运行 ecrise 的实例。请从 windows > 首选项 > Validations 暂停 JPA 的验证

    转到[安装目录]\eclipse\configuration\org.eclipse.equinox.simpleconfigurator

    使用记事本++、写字板或记事本编辑bundles.info,使

    您必须删除包含 org.[something].jpa 的行(对不起,我不记得确切的名称:P)并保存文件。

    启动 eclipse 就可以了,你不会在你的 elipse 控制台中看到那些麻烦的 "JPA Project Change Event Handler (waiting)" 消息。

【讨论】:

如果我们执行第一步,从 bundles.info 中删除行是否也很重要? @Akshay 是的,这将作为两步删除以确保完全删除【参考方案10】:

新的 Eclipse 似乎解决了这个问题。该插件不适用于 Java Enterprise 套件。

【讨论】:

Eclipse 版本:2020-12 (4.18.0) 时我仍然遇到这个问题。【参考方案11】:

它对我有用。日食 2021-09。您必须删除所有包含 jpa 的行。

【讨论】:

以上是关于Eclipse JPA 项目变更事件处理程序(等待中)的主要内容,如果未能解决你的问题,请参考以下文章

Play-Module 内部的单元测试(JPA,eclipse PersistenceProvider)

如何使用jpa项目eclipse在实体类中生成唯一约束

用Eclipse生成JPA元模型

Eclipse 中 JPA 项目的问题 - 注释类 @Entity 中的错误:无法解决表“xxx”

Angular中的变更检测

Eclipse 通过JPA自动生成注解实体