升级到maven-plugin-plugin 3.6.4会导致com.thoughtworks.qdox.parser.ParseException:语法错误

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

将 maven-plugin-plugin 从 3.6.0 升级到 3.6.4 后,在构建创建 maven-plugin-descriptor 时出现以下异常:

Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-descriptor of goal org.apache.maven.plugins:maven-plugin-plugin:3.6.4:descriptor failed: syntax error @[60,84] in file:/xyz/Foo.java
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
...
Caused by: com.thoughtworks.qdox.parser.ParseException: syntax error @[60,84] in file:/xyz/Foo.java
        at com.thoughtworks.qdox.parser.impl.Parser.yyerror (Parser.java:1963)
        at com.thoughtworks.qdox.parser.impl.Parser.yyparse (Parser.java:2085)
        at com.thoughtworks.qdox.parser.impl.Parser.parse (Parser.java:1944)
        at com.thoughtworks.qdox.library.SourceLibrary.parse (SourceLibrary.java:232)

这是使用 Maven 3.8.6 运行的。

代码编译文件 - 仅在运行时

org.apache.maven.plugins:maven-plugin-plugin:3.6.4:descriptor

maven-plugin
1个回答
0
投票

事实证明,这与使用受限标识符(var、yield、record)作为方法参数有关。在这方面,底层的 qdox 解析器似乎比 Java 编译器更加挑剔。

对文件运行 Sonarlint 有助于识别问题。他们在

java:S6213
规则中提供了很好的描述。

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