IntelliJ插件开发冻结了目标IntelliJ实例

时间:2019-04-21 13:36:00

标签: java intellij-idea intellij-plugin

我正在构建一个非常简单的IntelliJ插件,并使用IntellIJ CE(2019.1)作为构建烟雾测试/调试的目标,并通过OOTB IntelliJ插件运行配置进行部署。

每当我执行运行/调试时,它就会按预期方式打开IntelliJ CE(作为Main java进程),让我选择要打开的项目。打开项目并加载IntelliJ UI后,我需要大约5到10秒钟的时间,UI才会变得无响应,然后旋转。我注意到Main java进程(用于CE实例)在接下来的几秒钟内(在我的16GB机器上)开始吞噬内存,跃升至5-6GB。在这一点上,我只能停止进程了。

最初,我以为是我的代码(也许创建了一个无意的无限循环),但是我注释掉了我的plugin.xml中除了fileType扩展名(基本上是Bean)之外的所有内容,并且它仍然可以做到。我通过从GitHub抓取其他一些IntelliJ插件项目并运行这些(未修改)来达到相同的效果,从而继续进行调查!因此,我认为与插件无关的事情完全没有。

我已经执行了CE进程的线程转储,但没有任何异常(特别是查找包含我的程序包的跟踪)。

最后,我将插件构建为可部署的Jar,并将其部署到CE和Ultimate中,并且不会冻结任何内容。因此,这似乎与插件部署RunConfiguration(我保留了默认参数)有关。

我在macOS上运行最新的IntelliJ 2019.1。我正在开发IntelliJ Ultimate,并部署到IntelliJ CE(2019.1)。


基于屏幕截图的正确答案的解决方案:

  1. 创建一个指向IntelliJ CE安装的新IntelliJ插件开发SDK,并将其设置为项目的SDK enter image description here

  2. 创建一个指向从bintray下载的RJDK的新JDK enter image description here

  3. 将步骤2中创建的JDK分配为步骤1中创建的Puggin Development SDK的JDK(通过“ SDK”选项卡) enter image description here

  4. 设置插件运行配置以使用IntelliJ CE SDK。 enter image description here

  5. 运行Plugin运行配置,CE将打开并带有“热部署”插件!

1 个答案:

答案 0 :(得分:1)

使用https://bintray.com/jetbrains/intellij-jbr或主要IntelliJ IDEA安装中的JetBrains Runtime 8或11版本来运行沙盒IDE版本。您可以在插件“运行/调试”配置的“ JRE”字段中指定它。