启用自定义规则后,SonarsQube扫描程序在Jenkins上失败

时间:2017-08-24 10:49:13

标签: java jenkins sonarqube

我正在运行Jenkins作业构建,直到我在SonarQube中启用了一个自定义规则。该规则由我编写,用于在Sonar中执行公司特定的代码约定检查。 启用规则后,SonarQube扫描仪抱怨 ClassNotFound 错误:

引起:java.lang.ClassNotFoundException:org.sonar.java.checks.JavaFootprint     在org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)     at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)     在org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)     ......还有70多个 18:33:57.764 DEBUG:执行getVersion 18:33:57.765调试:执行停止

请帮忙。感谢。

从此处复制自定义代码:https://github.com/SonarSource/sonar-custom-rules-examples/tree/master/java-custom-rules 我添加了一些代码来检查Tree.Kind.TRIVIA,类似于这个: https://github.com/SonarSource/sonar-java/blob/master/java-checks/src/main/java/org/sonar/java/checks/CommentedOutCodeLineCheck.java 我们的想法是强制执行一些公司评论约定,例如检查公司许可声明是否在每个文件的开头。

1 个答案:

答案 0 :(得分:0)

您尝试使用的类org.sonar.java.checks.JavaFootprint不是SonarJava api的一部分(api的类部分在包名称中有api),因此在运行时找不到,导致您看到错误。

此类不适用于自定义Java规则。