gpt4 book ai didi

java - Sonarqube 错误 java.lang.ClassCastException : org. sonar.java.resolve.SemanticModel 无法转换为 org.sonar.java.resolve.SemanticModel

转载 作者:搜寻专家 更新时间:2023-11-01 03:02:22 25 4
gpt4 key购买 nike

您好,我根据 java-web-plugin 3.5 的一些检查(依赖于 java-checks 3.5 的 pom)为 Sonar 5.1.2 编写了自己的插件,当我尝试对项目运行分析时出现错误:

Caused by: java.lang.ClassCastException: org.sonar.java.resolve.SemanticModel cannot be cast to org.sonar.java.resolve.SemanticModel
at org.sonar.java.checks.SubscriptionBaseVisitor.scanFile(SubscriptionBaseVisitor.java:32)
at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:123)
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:94)
... 38 more

例如,我从 BadMethodName_S00100_Check.java 复制到我的插件代码并仅更改了类名、描述和问题信息。为什么我会收到错误?其他不使用 semanticModel 的检查工作正常。

最佳答案

这是因为类 SemanticModel 并非设计用于自定义规则,也不是 API 的一部分。因此,您在运行时遇到错误,因为此类不可用,而我们不能“禁止”您在编译期间使用它。请看http://sonarqube-archive.15.x6.nabble.com/How-to-use-JavaFileScannerContext-getSemanticModel-td5029996.html更多细节。这个限制是通过 SonarQube 插件打包完成的。我想错误消息应该是明确的(是的,这是轻描淡写的说法)。

如果您想访问语义信息,请使用树节点中的语义 API 来访问符号和类型。

关于java - Sonarqube 错误 java.lang.ClassCastException : org. sonar.java.resolve.SemanticModel 无法转换为 org.sonar.java.resolve.SemanticModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32611869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com