I';我在尝试将Java版本更新为13时遇到编译器错误

I';我在尝试将Java版本更新为13时遇到编译器错误,java,spring-boot,maven,java-8,Java,Spring Boot,Maven,Java 8,我试图将一个用Java 8编写的Spring Boot项目迁移到Java 13,但在编译过程中出现以下错误: 信息:java:编译器中发生异常(13.0.1)。 请通过Java错误报告针对Java编译器提交错误 检查错误数据库后返回第页() ()重复。包括您的程序,以及 以下是诊断,以及传递给Java编译器的参数 在你的报告中。多谢各位 堆栈跟踪是: java.lang.AssertionError: Incorrect number of arguments; expected 1, foun

我试图将一个用Java 8编写的Spring Boot项目迁移到Java 13,但在编译过程中出现以下错误:

信息:java:编译器中发生异常(13.0.1)。 请通过Java错误报告针对Java编译器提交错误 检查错误数据库后返回第页() ()重复。包括您的程序,以及 以下是诊断,以及传递给Java编译器的参数 在你的报告中。多谢各位

堆栈跟踪是:

java.lang.AssertionError: Incorrect number of arguments; expected 1, found 0
        at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:162)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitApply(TransTypes.java:661)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1737)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitLambda(TransTypes.java:541)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1914)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translateArgs(TransTypes.java:213)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitApply(TransTypes.java:664)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1737)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitBinary(TransTypes.java:743)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:2096)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitParens(TransTypes.java:715)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCParens.accept(JCTree.java:1954)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitIf(TransTypes.java:604)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1492)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:167)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1030)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitIf(TransTypes.java:605)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1492)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:167)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1030)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitMethodDef(TransTypes.java:490)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:876)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.visitClassDef(TreeTranslator.java:139)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translateClass(TransTypes.java:943)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitClassDef(TransTypes.java:476)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:784)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translateTopLevelClass(TransTypes.java:967)
        at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1558)
        at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1437)
        at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:972)
        at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
        at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
        at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
        at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
        at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
        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:567)
        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)
java.lang.AssertionError: Incorrect number of arguments; expected 1, found 0
        at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:162)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitApply(TransTypes.java:661)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1737)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitLambda(TransTypes.java:541)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1914)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translateArgs(TransTypes.java:213)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitApply(TransTypes.java:664)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1737)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitBinary(TransTypes.java:743)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:2096)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitParens(TransTypes.java:715)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCParens.accept(JCTree.java:1954)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitIf(TransTypes.java:604)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1492)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:167)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1030)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitIf(TransTypes.java:605)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCIf.accept(JCTree.java:1492)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.visitBlock(TreeTranslator.java:167)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1030)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitMethodDef(TransTypes.java:490)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:876)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:70)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.visitClassDef(TreeTranslator.java:139)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translateClass(TransTypes.java:943)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.visitClassDef(TransTypes.java:476)
        at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:784)
        at jdk.compiler/com.sun.tools.javac.tree.TreeTranslator.translate(TreeTranslator.java:58)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translate(TransTypes.java:455)
        at jdk.compiler/com.sun.tools.javac.comp.TransTypes.translateTopLevelClass(TransTypes.java:967)
        at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1558)
        at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.desugar(JavaCompiler.java:1437)
        at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:972)
        at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
        at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
        at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
        at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
        at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
        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:567)
        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)
我当前的JVM是:

java version "13.0.1" 2019-10-15
Java(TM) SE Runtime Environment (build 13.0.1+9)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)
我的Maven版本是:

Maven home: /opt/maven/apache-maven
Java version: 13.0.1, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-13-oracle
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-72-generic", arch: "amd64", family: "unix"
我正在运行IntelliJ 2019.2

我还将Maven构建插件更新为:


org.apache.maven.plugins
maven编译器插件
3.8.1
13
13
还有IntelliJ上的项目JDK配置和语言功能


有人知道吗?

当您从java 1.8切换时,需要考虑以下几点:

您还需要添加其他依赖项,如:

javax.annotation-api
jaxb-api
jaxws-api
javax.jws
尝试添加以下JVM参数:

--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED

从java 1.8切换时,需要考虑以下几点:

您还需要添加其他依赖项,如:

javax.annotation-api
jaxb-api
jaxws-api
javax.jws
尝试添加以下JVM参数:

--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED

嗯,我们没有时间了,我们不得不面对这个问题,直到我们找到解决方案或解决办法。我们终于做到了

在我们的例子中,破坏编译器的是在QueryDSL的
BooleanBuilder
表达式中意外地插入了一个额外的括号(或者是由一个不小心的重构者留下的)

这会中断编译器(括号外):

conditionsDue.和((payment.totalInBrl.gt(BigDecimal.ZERO));
//----------------^--------------------------------------^
编译成功(无额外括号):

conditionsDue.and(payment.totalInBrl.gt(BigDecimal.ZERO));

我希望它能帮助其他人。

好吧,我们没有时间了,我们不得不面对这个问题,直到找到解决方案或解决办法。我们终于做到了

在我们的例子中,破坏编译器的是在QueryDSL的
BooleanBuilder
表达式中意外地插入了一个额外的括号(或者是由一个不小心的重构者留下的)

这会中断编译器(括号外):

conditionsDue.和((payment.totalInBrl.gt(BigDecimal.ZERO));
//----------------^--------------------------------------^
编译成功(无额外括号):

conditionsDue.and(payment.totalInBrl.gt(BigDecimal.ZERO));

我希望它能帮助其他人。

打开,尚未解决:看@jarmod的评论,我意识到问题来自于番石榴传递依赖。在我的项目中,唯一使用番石榴的图书馆是Swagger2。通过删除它,我可以编译。是的。。。如果您使用的是“全新”版本,则可能会在编译器中遇到edge case错误。如果您需要稳定性,请坚持使用LTS版本。@StephenC我们已经在jdk-13中运行了几个POD。如果您坚持使用
LTS
,下一次升级将是jdk-17,您会想知道该升级将如何发生在6个版本上。但是在这种情况下,使用LTS不会有帮助,因为Java 11中显然也存在该缺陷。打开,尚未解决:查看@jarmod的注释,我意识到问题来自于番石榴的传递依赖。在我的项目中,唯一使用番石榴的图书馆是Swagger2。通过删除它,我可以编译。是的。。。如果您使用的是“全新”版本,则可能会在编译器中遇到edge case错误。如果您需要稳定性,请坚持使用LTS版本。@StephenC我们已经在jdk-13中运行了几个POD。如果您坚持使用
LTS
,下一次升级将是jdk-17,您会想知道升级将如何发生在6个版本的跳转中。但是在这种情况下,使用LTS不会有帮助,因为Java 11中显然也存在此缺陷。