Разработка плагинов IntelliJ. Исключение загрузчика классов при запуске отладки
- Я создаю проект плагина, используя систему сборки Gradle
- Со следующим содержимым файла 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>
- И 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.