我正在尝试在 Intellij 中运行单元测试,甚至在它有机会运行之前我就遇到了以下构建失败:
java: java.lang.ClassNotFoundException: org.checkerframework.checker.nullness.NullnessChecker
java.lang.RuntimeException: java.lang.ClassNotFoundException: org.checkerframework.checker.nullness.NullnessChecker
at org.jetbrains.jps.javac.JavacMain.lookupAnnotationProcessors(JavacMain.java:326)
at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:233)
at org.jetbrains.jps.javac.ExternalJavacProcess.compile(ExternalJavacProcess.java:189)
at org.jetbrains.jps.javac.ExternalJavacProcess.access$400(ExternalJavacProcess.java:28)
at org.jetbrains.jps.javac.ExternalJavacProcess$CompilationRequestsHandler$1.run(ExternalJavacProcess.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.ClassNotFoundException: org.checkerframework.checker.nullness.NullnessChecker
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.jetbrains.jps.javac.LazyClassLoader.findClass(LazyClassLoader.java:58)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.jetbrains.jps.javac.JavacMain.lookupAnnotationProcessors(JavacMain.java:308)
... 7 more
我有一个使用检查器框架配置的 Maven pom 文件,如下 https://checkerframework.org/manual/#maven .
Intellij配置加载maven项目;但是我已经禁用了“将 IDE 构建/运行操作委托给 Maven”。我不想启用此功能。我也不想禁用或删除检查器框架。那么我该如何解决这个问题呢?
首先尝试从命令行运行测试,如果失败则修复它。然后尝试从IDE中运行它,如果失败则找出环境的差异。 IDE 添加了自己的约定和设置,修复它们直到测试通过