【问题标题】:IntelliJ plugin development freezes target IntelliJ instanceIntelliJ 插件开发冻结目标 IntelliJ 实例
【发布时间】:2019-04-21 13:35:59
【问题描述】:

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

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

最初,我认为这是我的代码(可能创建了一个无意的无限循环),但我在我的 plugin.xml 中注释了所有内容,除了文件类型扩展名(基本上是一个 Bean),它仍然这样做。我继续我的调查,从 GitHub 上抓取了一些其他 IntelliJ 插件项目,并运行这些(未修改),达到同样的效果!!所以我认为这与我的插件无关。

我已经对 CE 进程进行了线程转储,但没有任何东西跳出(专门寻找包含我的包的跟踪)。

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

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


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

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

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

  3. 将步骤 2 中创建的 JDK 分配为步骤 1 中创建的 Puggin 开发 SDK 的 JDK(通过 SDK 选项卡)

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

  5. 运行插件运行配置,CE 将打开,插件“热部署”到它!

【问题讨论】:

    标签: java intellij-idea intellij-plugin


    【解决方案1】:

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

    【讨论】:

    • 为什么会有不同?
    • 它包含普通 JRE 没有的修复。
    • 我从 bintray.com/jetbrains/intellij-jbr/jbrsdk11-osx-x64/226.7#files 下载了 Runtime 和 Runtime SDK v226.7 .. 解压缩它们,并将我的插件 JRE 字段指向 ~/jbr/Contents/Home 和 ~/jbrsdk/ContentHome。 .但它构建它说:错误:无法找到或加载主类com.intellij.idea.Main
    • 确保构建完成且没有错误。尝试重建。
    • 您需要将其添加为JDK 并将其设置为IJ Platform Plugin SDKInternal Java Platform,而不是Run Configuration 中的JRE。如果您运行的不是插件而是 intellij-community 本身,JRE 字段将起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2014-07-13
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多