IntelliJ IDEA插件依赖项ClassNotFoundException

时间:2018-10-01 20:03:23

标签: java gradle intellij-idea plugins

我创建了具有以下依赖关系的插件:

compile group: 'org.apache.httpcomponents', name: 'fluent-hc', version: '4.5.6'
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
compile group: 'joda-time', name: 'joda-time', version: '2.10'
compile group: 'com.google.guava', name: 'guava', version: '26.0-jre'

,它运行完美。

然后我添加了更多依赖项:

compile group: 'javax.validation', name: 'validation-api', version: '2.0.1.Final'
compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.0.13.Final'
compile group: 'javax.el', name: 'javax.el-api', version: '3.0.0'
compile group: 'org.glassfish', name: 'javax.el', version: '3.0.0'

,当我在本地用runIde任务测试插件时,它工作得非常完美。

当我将jar文件添加到IDEA时,出现异常:java.lang.NoClassDefFoundError:javax / validation / Validation

在两种情况下,jar文件都不包含任何依赖项。

我想念什么?


更新

6岁的问题:

How does Intellij IDEA manage plugin dependencies?

它仍然有效吗?如果可以的话,如何将我的依赖项放入插件jar中?

我现在正在做

gradle clean buildPlugin

2 个答案:

答案 0 :(得分:0)

更新build.gradle

jar {
    from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}

答案 1 :(得分:0)

基于响应here,我需要提交zip文件而不是jar。压缩包含所有依赖项。