Gradle Intellij插件中的java.lang.NoClassDefFoundError

Gradle Intellij插件中的java.lang.NoClassDefFoundError,gradle,intellij-idea,intellij-plugin,Gradle,Intellij Idea,Intellij Plugin,我试图为Intellij构建一个插件,但每次代码指向另一个模块中的类或外部库时,我都会在运行时得到一个java.lang.NoClassDefFoundError 通过runIde,在我的测试和沙箱中一切都正常 我还通过创建一个新项目来重现错误,该项目只包含一个操作和一个带有类和空方法的模块 根梯度: buildscript { ext.kotlin_version = '1.2.31' repositories { mavenCentral() }

我试图为Intellij构建一个插件,但每次代码指向另一个模块中的类或外部库时,我都会在运行时得到一个
java.lang.NoClassDefFoundError

通过
runIde
,在我的测试和沙箱中一切都正常

我还通过创建一个新项目来重现错误,该项目只包含一个操作和一个带有类和空方法的模块

根梯度:

buildscript { ext.kotlin_version = '1.2.31' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } plugins { id 'org.jetbrains.intellij' version '0.3.12' } group 'test' version '1.0-SNAPSHOT' apply plugin: 'kotlin' repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" compile project(':testmodule') } compileKotlin { kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" } intellij { version '2018.1.6' } patchPluginXml { changeNotes """ Add change notes here.
most HTML tags may be used""" } 构建脚本{ ext.kotlin_version='1.2.31' 存储库{ mavenCentral() } 依赖关系{ classpath“org.jetbrains.kotlin:kotlin gradle plugin:$kotlin_version” } } 插件{ id“org.jetbrains.intellij”版本“0.3.12” } 组“测试” 版本“1.0-SNAPSHOT” 应用插件:“kotlin” 存储库{ mavenCentral() } 依赖关系{ 编译“org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_版本” 编译项目(“:testmodule”) } 科特林{ kotlinOptions.jvmTarget=“1.8” } compileTestKotlin{ kotlinOptions.jvmTarget=“1.8” } intellij{ 版本“2018.1.6” } patchPluginXml{ 更改注释“” 在此处添加更改注释。
大多数HTML标记都可以使用“” } 行动:

package action import com.intellij.openapi.actionSystem.* import packages.OtherModuleClass class TestAction : AnAction() { override fun actionPerformed(e: AnActionEvent?) { OtherModuleClass().otherModuleMethod() } } 一揽子行动 导入com.intellij.openapi.actionSystem* 导入packages.OtherModuleClass 类TestAction:AnAction(){ 覆盖已执行的有趣操作(e:AnActionEvent?){ OtherModuleClass().otherModuleMethod() } } 其他模块类别:

package packages class OtherModuleClass { fun otherModuleMethod() {} } 包装 类OtherModuleClass{ fun otherModuleMethod(){} }
我发现了我的问题所在


我在IDE中安装了
build/libs中的
jar
,而不是
build/distributions中的
zip
如果其他人正在寻找类似问题的解决方案,我会通过在build.gradle中添加java插件来修复它

apply plugin "java"

>什么类上的java.lang.NoClassDefFoundError?这个类是公共的吗?@AlexanderZolotov是公共的,我的代码编译,我的单元测试运行,在sandbox works中启动插件。问题是当我获取生成的.jar文件并将其安装到IDE上进行真正的测试时