【发布时间】:2014-06-26 01:15:56
【问题描述】:
您好,我正在尝试为 SonarQube 4.1 实现自定义 Java 规则。
从website 我发现example plugin on github 带有基于JavaFileScanner 的ExampleCheck。
但是我有几个严重的问题要让事情正常工作。 现在我希望至少可以帮助我让样本在 SonarQube 4.1 中工作。
编译和部署不起作用,因为它取决于 sonar-plugin-api 4.1.1 等等启动 SonarQube 对此的抱怨
ERROR [o.s.s.p.PlatformLifecycleListener] Fail to start server
java.lang.IllegalStateException: Plugin javacustomrules needs a more recent version of SonarQube than 4.1. At least 4.1.1 is expected
将依赖项更改为 4.1 版本并让 sonarqube 启动。我可以在 QualityProfile 中选择规则并运行:
mvn sonar:sonar
但这以以下错误结束:
... 原因:org.sonar.squid.api.AnalysisException:SonarQube 无法分析文件:'C:\projects\...MyClass.java' 在 org.sonar.java.ast.AstScanner.scan(AstScanner.java:102) 在 org.sonar.java.JavaSquid.scanSources(JavaSquid.java:135) 在 org.sonar.java.JavaSquid.scan(JavaSquid.java:129) 引起:java.lang.ClassCastException:org.sonar.java.model.JavaTree$CompilationUnitTreeImpl 不能转换为 org.sonar.java.model.JavaTree$CompilationUnitTreeImpl 在 org.sonar.samples.java.PrinterVisitor.scan(PrinterVisitor.java:66) 在 org.sonar.samples.java.PrinterVisitor.print(PrinterVisitor.java:34) 在 org.sonar.samples.java.ExampleCheck.scanFile(ExampleCheck.java:49) 在 org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:87) 在 com.sonar.sslr.impl.ast.AstWalker.walkAndVisit(AstWalker.java:67) 在 org.sonar.java.ast.AstScanner.scan(AstScanner.java:95) ... 62 更多对应的代码对我来说看起来不错,因为有从 JavaTree.CompilationUnitTreeImpl 到 JavaTree 的转换。
GitHub 上没有 TestCase 的历史记录,所以我看不出发生了什么变化。还是 SonarQube 4.1 存在严重问题,强烈建议更新?
【问题讨论】: