Разработка плагинов IntelliJ. Исключение загрузчика классов при запуске отладки

  1. Я создаю проект плагина, используя систему сборки Gradle
  2. Со следующим содержимым файла plugin.xml

<idea-plugin>
  <id>com.magicbytes.kotlin-converter-plugin</id>
  <name>Kotlin Converter Gradle</name>
  <vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor>

  <description>
    <![CDATA[
    Enter short description for your plugin here.<br>
    <em>most HTML tags may be used</em>
    ]]></description>

  <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
  <idea-version since-build="162" />

  <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
         on how to target different products -->
  <!-- uncomment to enable plugin in all products
    <depends>com.intellij.modules.lang</depends>
    -->

  <extensions defaultExtensionNs="com.intellij">
  </extensions>

  <actions>
    <group id="MyPlugin.SampleMenu" text="Greeting" description="Greeting menu">
      <add-to-group group-id="MainMenu" anchor="last" />
      <action id="Myplugin.Textboxes" class="ThirdAction" text="Hello" description="Says hello" />
    </group>
  </actions>
</idea-plugin>

  1. И Gradle строить содержимое файла

plugins {
  id 'org.jetbrains.intellij'
  version '0.3.0'
}

group 'com.magicbytes'
version '0.0.1'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
  mavenCentral()
}

dependencies {
  testCompile group: 'junit', name: 'junit', version: '4.12'
}

intellij {
  version '2017.3.5'
}

intellij {
  plugins 'kotlin'
}

patchPluginXml {
  changeNotes ""
}

Проблема, с которой я сталкиваюсь, заключается в следующем исключении, когда я использую KtVisitor:

Caused by: java.lang.ClassNotFoundException: org.jetbrains.kotlin.psi.KtVisitor PluginClassLoader[com.magicbytes.kotlin-converter-plugin, 0.0.1] com.intellij.ide.plugins.cl.PluginClassLoader@7591f7
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:63)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 28 mor**

1 ответ

Решение

Во-первых, вы не сказали, как вы запускали IDE отладки. Я предположил, что вы используете сборку IDEA вместо gradle, и мое предположение было правильным. Пожалуйста, дайте более четкие описания в следующий раз.

Два шага (согласно моим комментариям и вашему ответу):

  • + Изменить id 'org.jetbrains.intellij' к вашему реальному имени пакета, чтобы избежать конфликтов с существующими плагинами IDEA (возможно, ядро ​​IDEA использует этот идентификатор).
  • Прекратите использовать IDEA build. Вместо этого используйте gradle runIde Команда для запуска отладочной IDE.
Другие вопросы по тегам