Gradle Intellij插件中的java.lang.NoClassDefFoundError
我试图为Intellij构建一个插件,但每次代码指向另一个模块中的类或外部库时,我都会在运行时得到一个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() }
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上进行真正的测试时