当前位置: 首页 > 知识库问答 >
问题:

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

鲜于高明
2023-03-14

我正在运行Jenkins job build fine,直到我在SonarQube中启用了一个自定义规则。这条规则是我写的,用于在声纳中进行公司特定的代码约定检查。启用该规则后,SonarQube扫描仪将报告ClassNotFound错误:

原因:java。lang.ClassNotFoundException:org。声纳。JAVA检查。JavaFootprint位于org。声纳。类加载器。父母优先战略。loadClass(ParentFirstStrategy.java:39)位于org。声纳。类加载器。类领域。loadClass(ClassRealm.java:87)位于org。声纳。类加载器。类领域。loadClass(ClassRealm.java:76)。。。70更多18:33:57.764调试:执行getVersion 18:33:57.765调试:执行停止

请好心帮忙。谢谢。

自定义代码从此处复制:html" target="_blank">https://github.com/SonarSource/sonar-custom-rules-examples/tree/master/java-custom-rules我添加了一些代码来检查树。友善的与此类似的琐事:https://github.com/SonarSource/sonar-java/blob/master/java-checks/src/main/java/org/sonar/java/checks/CommentedOutCodeLineCheck.java其想法是执行一些公司注释约定,例如检查公司许可证声明是否位于每个文件的开头。

共有1个答案

郭逸清
2023-03-14

您试图使用的类org。声纳。JAVA检查。JavaFootprint不是Java api的一部分(api中的类在包名中有api),因此在运行时找不到它,从而导致您看到的错误。

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

 类似资料:
  • 我有一个运行Jenkins(2.155.1)的Docker容器,另一个运行SonarQube(7.4)的Docker容器。Jenkins正在为Jenkins插件使用SonarQube扫描仪,扫描是在Jenkins容器上完成的。项目的如下所示: 为了使扫描作为Jenkins管道作业的一部分工作,我在Jenkins容器上手动安装了,方法是下载zip文件并将其解压缩到: 这很有效,但我想通过以下方法来改

  • 我们在中基于BaseTreeVisitor实现了一个自定义规则https://github.com/SonarSource/sonar-java/tree/master/java-checks/src/main/java/org/sonar/java/checks如中所述http://docs.sonarqube.org/display/SONAR/Extending编码规则。我们能够部署它,它看

  • 我正在使用Sonarqube5.4来分析我自己的C#代码,分析工作与我预期的一样。现在我已经编写了一些自定义规则,一个使用StyleCop,另一个使用FxCop在我的代码上运行,但我没有找到如何在Sonarqube中导入自定义规则。我强调我使用Sonarqube5.4和C#插件5.1。在我的安装中,文件夹“规则”不存在。相反,我可以找到: 有人能帮我在SonarQube安装中导入我的自定义规则吗?

  • 我试图在SonarQube上运行我的自定义PMD规则,但到目前为止,没有成功。 我创建了一个从sonar-pmd-plugin扩展的插件。在这个插件中,我有我的PMD规则集文件(custom_rules.xml)、一个声纳规则文件(pmd-extensions.xml)和我的自定义规则的Java类。 SonarQube识别了我的规则,我已经在默认的质量配置文件中启用了它们。最后,当我在给定的项目上

  • 我有一个项目是由詹金斯建造的。我已经安装了Jenkins SonarQube插件,并添加了一个构建步骤来运行声纳分析。 这工作很好,问题出现在我的声纳仪表板正确。 如何将自定义Findbugs规则放入此工具链?

  • 我正在尝试从我的jenkins节点运行soanrQube扫描,Sonar scanner版本是SonarQube scanner 3.1.0.1141,SonarQube服务器是SonarQube服务器5.6.4。得到以下错误,有谁能在这方面帮助我。