"main"线程中的异常:java.lang.AssertionError

31

在代码重构后,当我尝试编译Maven项目时,我遇到了这个错误:

"C:\Program Files\Java\jdk-14\bin\java.exe" -Dmaven.multiModuleProjectDirectory=C:\Users\plte1219\Desktop\CJM\media_auth -Xmx1024m -XX:MaxPermSize=512m "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\plugins\maven\lib\maven3\bin\m2.conf" "-Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=59675:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\plugins\maven\lib\maven3\boot\plexus-classworlds-2.6.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\plugins\maven\lib\maven3\boot\plexus-classworlds.license" org.codehaus.classworlds.Launcher -Didea.version2020.1.2 clean package
Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
[INFO] Scanning for projects...
[INFO] 
[INFO] -----------------------< org.engine:engine_auth >-----------------------
[INFO] Building engine_auth 1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ engine_auth ---
[INFO] Deleting C:\Users\plte1219\Desktop\CJM\media_auth\target
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ engine_auth ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] Copying 6 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ engine_auth ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 38 source files to C:\Users\plte1219\Desktop\CJM\media_auth\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  11.174 s
[INFO] Finished at: 2020-06-25T22:47:39+03:00
[INFO] ------------------------------------------------------------------------
---------------------------------------------------
constituent[0]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/conf/logging/
constituent[1]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/cdi-api-1.0.jar
constituent[2]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/commons-cli-1.4.jar
constituent[3]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/commons-io-2.5.jar
constituent[4]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/commons-lang3-3.8.1.jar
constituent[5]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/guava-25.1-android.jar
constituent[6]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/guice-4.2.1-no_aop.jar
constituent[7]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/jansi-1.17.1.jar
constituent[8]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/javax.inject-1.jar
constituent[9]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/jcl-over-slf4j-1.7.29.jar
constituent[10]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/jsoup-1.12.1.jar
constituent[11]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/jsr250-api-1.0.jar
constituent[12]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-artifact-3.6.3.jar
constituent[13]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-builder-support-3.6.3.jar
constituent[14]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-compat-3.6.3.jar
constituent[15]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-core-3.6.3.jar
constituent[16]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-embedder-3.6.3.jar
constituent[17]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-model-3.6.3.jar
constituent[18]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-model-builder-3.6.3.jar
constituent[19]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-plugin-api-3.6.3.jar
constituent[20]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-repository-metadata-3.6.3.jar
constituent[21]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-resolver-api-1.4.1.jar
constituent[22]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-resolver-connector-basic-1.4.1.jar
constituent[23]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-resolver-impl-1.4.1.jar
constituent[24]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-resolver-provider-3.6.3.jar
constituent[25]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-resolver-spi-1.4.1.jar
constituent[26]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-resolver-transport-wagon-1.4.1.jar
constituent[27]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-resolver-util-1.4.1.jar
constituent[28]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-settings-3.6.3.jar
constituent[29]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-settings-builder-3.6.3.jar
constituent[30]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-shared-utils-3.2.1.jar
constituent[31]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/maven-slf4j-provider-3.6.3.jar
constituent[32]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/org.eclipse.sisu.inject-0.3.4.jar
constituent[33]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/org.eclipse.sisu.plexus-0.3.4.jar
constituent[34]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/plexus-cipher-1.7.jar
constituent[35]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/plexus-component-annotations-2.1.0.jar
constituent[36]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/plexus-interpolation-1.25.jar
constituent[37]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/plexus-sec-dispatcher-1.4.jar
constituent[38]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/plexus-utils-3.2.1.jar
constituent[39]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/slf4j-api-1.7.29.jar
constituent[40]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/wagon-file-3.3.4.jar
constituent[41]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/wagon-http-3.3.4-shaded.jar
constituent[42]: file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202019.3.1/plugins/maven/lib/maven3/lib/wagon-provider-api-3.3.4.jar
---------------------------------------------------
Exception in thread "main" java.lang.AssertionError
    at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:155)
    at jdk.compiler/com.sun.tools.javac.util.Assert.check(Assert.java:46)
    at jdk.compiler/com.sun.tools.javac.comp.Modules.enter(Modules.java:247)
    at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.readSourceFile(JavaCompiler.java:836)
    at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$ImplicitCompleter.complete(JavacProcessingEnvironment.java:1588)
    at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:670)
    at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1383)
    at jdk.compiler/com.sun.tools.javac.code.Type$ClassType.complete(Type.java:1157)
    at jdk.compiler/com.sun.tools.javac.code.Type$ClassType.getTypeArguments(Type.java:1083)
    at jdk.compiler/com.sun.tools.javac.code.Printer.visitClassType(Printer.java:237)
    at jdk.compiler/com.sun.tools.javac.code.Printer.visitClassType(Printer.java:52)
    at jdk.compiler/com.sun.tools.javac.code.Type$ClassType.accept(Type.java:1010)
    at jdk.compiler/com.sun.tools.javac.code.Printer.visit(Printer.java:136)
    at jdk.compiler/com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArgument(AbstractDiagnosticFormatter.java:199)
    at jdk.compiler/com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArguments(AbstractDiagnosticFormatter.java:167)
    at jdk.compiler/com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:111)
    at jdk.compiler/com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:67)
    at jdk.compiler/com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArgument(AbstractDiagnosticFormatter.java:185)
    at jdk.compiler/com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArguments(AbstractDiagnosticFormatter.java:167)
    at jdk.compiler/com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:111)
    at jdk.compiler/com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:67)
    at jdk.compiler/com.sun.tools.javac.util.JCDiagnostic.getMessage(JCDiagnostic.java:788)
    at jdk.compiler/com.sun.tools.javac.api.ClientCodeWrapper$DiagnosticSourceUnwrapper.getMessage(ClientCodeWrapper.java:835)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:131)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:174)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1134)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:187)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
    at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
我尝试删除文件夹.m2,但问题没有得到解决。你知道我该如何解决这个问题吗?

我试图删除文件夹.m2,但问题并未得到解决。你知道我该如何解决这个问题吗?


哪个文件会导致 Java 编译器崩溃?最小版本的该文件是多少仍然会导致 Java 编译器崩溃?没有这些信息,我们无法帮助你。 - Roland Illig
我降级到了Java 8,然后成功编译了它。之后我又切换回Java 14,现在它可以工作了 =) - Peter Penzov
6个回答

87

我曾遇到同样的问题。 强制maven-compiler-plugin使用javac帮助我发现了实际的编译错误。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <forceJavacCompilerUse>true</forceJavacCompilerUse>
  </configuration>
</plugin>

更多细节可以在这个Maven Compiler Plugin bug report中找到。

编辑:问题已经在maven-compiler-plugin 3.10.1版本中得到解决。


3
你是怎么发现的?谢谢,这个修复让我的一天变得美好了。 - freedev
1
谢谢!它对我有用。 - Federico Bellini
在这样做之后,我已经建立了多年的项目报告了28个错误,缺少已经存在的依赖项 - 在我删除了唯一一个几周内更改的文件之后。Eclipse通常在“maven install”上使用哪个编译器? - Dr Dave
@DrDave Eclipse在控制台窗口的顶部报告它正在使用的Java可执行文件。 - David Bradley
这对我有用 - 我之前使用的是<version>3.8.0</version>,现在更新到了<version>3.11.0</version>,问题得到了解决。 - Jerry Skidmore

7

在编译项目时,我遇到了一个非常没有用的错误,并发现问题是在另一个类中引用了不存在的静态内部类(该类已被重命名)。一旦解决了这个问题,错误就消失了。

解决方案:查找编译错误。有时您的 IDE 可能会为您找到它们,而不会引发此错误。


4
恭喜你在Java编译器中发现了一个bug。这很少见。这是编译器中的一个bug,因为类 com.sun.tools.javac.util.Assert.error 明确表示它来自于Java编译器javac,并且堆栈跟踪提供了非常好的提示来复现该错误。
请向OpenJDK项目报告此错误。 有一个compiler-dev邮件列表,您可以首先在那里询问并联系OpenJDK项目的主要开发人员。
报告错误时,请确保可以可靠地重现该错误,并尝试通过剥离任何不必要的代码以最简单的方式重现该错误。通常情况下,您最终得到的项目包含最多5个文件。 这里有用于报告良好缺陷的指南

他正在使用命令行Java 14 (C:\Program Files\Java\jdk-14\bin\java.exe),并且是从Maven编译,而不是从IntelliJ IDEA编译。可以从问题中发布的命令行看出,Maven没有使用JetBrains Runtime。你为什么认为应该向JetBrains报告此问题? - CrazyCoder
1
@CrazyCoder 感谢您仔细阅读我的回答。我没有仔细阅读问题,现在我已经修正了我的回答。 - Roland Illig
这可能并不是一个真正的 bug... 我之前在这篇帖子中看到过类似的情况:https://dev59.com/9lYN5IYBdhLWcg3wzK3f。这可能是由于缓存类中的冲突所致。如果是这种情况,先运行 mvn clean 命令,然后再运行相应的 Maven 构建命令就可以解决问题了。 - Kris Stern

2

我来晚了,但我想我的答案会帮助到未来的某个人。

我也遇到了同样的问题,我找到的根本原因是

我改变了一个依赖项的代码,但没有在那个依赖项的pom.xml中更改版本。

一旦我在两个pom.xml文件中更新了依赖项,一切就开始正常工作了。


0

重构后我遇到了这个错误,在我的情况下,崩溃是由于导入一个不存在的类所引起的。 不幸的是,编译器和IDE对此问题毫不知情。

如果按照@Yaroslav Buhaiev的建议启用forceJavacCompilerUse,你将看到更有意义的错误。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile 
   (default-compile) on project reporting: Compilation failure: Compilation failure: 
[ERROR] /Users/myuser/projects/myproject//src/main/java/com/example/UserResource.java:[76,111] 
   error: cannot find symbol
[ERROR]   symbol:   variable MY_PARAM
[ERROR]   location: class UserRepository

0

通过以下解决方案,我能够修复错误。

根本原因 - 在某个模块的配置文件夹中存在一个不存在的bean类。

解决方法 - 从配置文件夹中删除未使用的bean配置。

示例 - 我已从网关模块中删除了一些A类,但bean配置仍存在于配置文件夹中。删除bean配置后,构建成功。

编辑器 - IntelliJ Idea,JDK 11


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接