【问题标题】:Sonar using Sonar Runner on Jenkins Job fails to access classes在 Jenkins Job 上使用 Sonar Runner 的声纳无法访问类
【发布时间】:2012-12-17 12:01:23
【问题描述】:

我正在尝试对 Jenkins 作业进行声纳分析。我使用蚂蚁,所以我在项目中使用 Sonar Runner 和 sonar.properties。我将二进制文件配置为

sonar.binaries=build/ant/classes

在成功构建后,Sonar 启动并运行了一段时间。但是我在字节码分析过程中收到了很多警告。

我收到警告 XX - 无法通过 ClassLoader 访问“XX”类。

每个班级...

我真的不知道为什么类都在那里?

【问题讨论】:

    标签: jenkins sonarqube sonar-runner


    【解决方案1】:

    这些是 Findbugs 发出的警告,需要访问源代码、编译二进制文件和第 3 方库。

    要解决这些警告,您需要包含一个额外的 sonar.libraries 属性,其中填充了您的代码所依赖的第 3 方 jar(请参阅 Analaysis Parameters documentation

    【讨论】:

    • 您的意思是对于每个无法访问的类我都需要 sonar.libraries?但是是否还有另一条消息,例如“缺少以下类”,它显示了缺少的库类?对我来说,他似乎无法访问他应该分析的大部分课程......
    • @Hannes 我认为实际上可能有两个 findbugs 错误消息。我不记得细节了。无论如何,“sonar.libraries”属性的目的是正确填充 findbugs 使用的 java 路径。顺便说一句,Sonar 将使用属性或 ANT 路径毫无价值,只要确保其名为“sonar.libraries”即可。使用 Java 运行器使这变得更加困难......
    • @Hannes 你解决了这个问题吗?我对 maven 和 jenkins 也有同样的问题。
    【解决方案2】:

    我实际上遇到了同样的问题,但那是因为 maven 缓存的问题。

    我在本地机器上的目录中运行了 mvn clean install,但在虚拟机上的目录中运行声纳。这导致找不到类。

    【讨论】:

    • 您能否扩展您为解决问题所做的工作?在声纳实例上运行 mvn clean?
    • 希望这对您有所帮助@tholu2 stackoverflow.com/questions/31528033/…
    • 谢谢,我的问题很简单,必须添加一个预构建步骤,我会在其中执行mvn compile
    猜你喜欢
    • 2012-10-19
    • 1970-01-01
    • 2016-09-16
    • 2015-09-11
    • 2014-06-19
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 2015-01-29
    相关资源
    最近更新 更多