IntelliJ 插件开发。 Class 启动调试时加载程序异常
IntelliJ Plugin Development. Class loader exception when start debugging
- 我正在使用 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**
首先,你没有说你是如何运行调试IDE的。我假设您使用的是 IDEA 版本而不是 gradle,我的猜测是正确的。下次请描述清楚。
两步(根据我的评论和你的回复):
- 将
id 'org.jetbrains.intellij'
更改为您的真实包名称以避免与现有 IDEA 插件冲突(可能 IDEA 核心正在使用此 ID)。
- 停止使用 IDEA 版本。相反,使用
gradle runIde
命令启动调试 IDE.
- 我正在使用 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**
首先,你没有说你是如何运行调试IDE的。我假设您使用的是 IDEA 版本而不是 gradle,我的猜测是正确的。下次请描述清楚。
两步(根据我的评论和你的回复):
- 将
id 'org.jetbrains.intellij'
更改为您的真实包名称以避免与现有 IDEA 插件冲突(可能 IDEA 核心正在使用此 ID)。 - 停止使用 IDEA 版本。相反,使用
gradle runIde
命令启动调试 IDE.