我正在运行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 我们的想法是强制执行一些公司评论约定,例如检查公司许可声明是否在每个文件的开头。
答案 0 :(得分:0)
您尝试使用的类org.sonar.java.checks.JavaFootprint
不是SonarJava api的一部分(api的类部分在包名称中有api),因此在运行时找不到,导致您看到错误。
此类不适用于自定义Java规则。