我在JUnit测试中遇到了一个奇怪的问题。我在我的BNF文件中添加了一个新规则,从而创建了一个新的令牌FOO。运行插件工作正常,令牌和元素显示在PSI视图中。但是,当执行UnitTest时,它会失败:
de/foo/bar/psi/impl/FooBarImpl
java.lang.NoClassDefFoundError: de/foo/bar/psi/impl/FooBarImpl
at de.foo.bar.psi.FooTypes$Factory.createElement(FooTypes.java:424)
at de.foo.bar.parser.FooParserDefinition.createElement(FooParserDefinition.java:63)
at com.intellij.psi.impl.source.tree.CompositeElement.createPsiNoLock(CompositeElement.java:705)
...
Caused by: java.lang.ClassNotFoundException: de.foo.bar.psi.impl.FooTinesImpl
at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:215)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 40 more
报告为未找到的类可用。
通过从我的插件文件夹的根目录中删除文件夹build/classes
得到它的工作