在配置了检查器框架的 Intellij 和 maven pom 中运行测试时出现 ClassNotFoundException

问题描述 投票:0回答:1

我正在尝试在 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”。我不想启用此功能。我也不想禁用或删除检查器框架。那么我该如何解决这个问题呢?

java maven intellij-idea checker-framework
1个回答
0
投票

首先尝试从命令行运行测试,如果失败则修复它。然后尝试从IDE中运行它,如果失败则找出环境的差异。 IDE 添加了自己的约定和设置,修复它们直到测试通过

© www.soinside.com 2019 - 2024. All rights reserved.