gpt4 book ai didi

jenkins - 使用 Jenkins、SonarQube 和 Gradle 修复 'Class is not accessible through the ClassLoader.' 警告

转载 作者:行者123 更新时间:2023-12-04 18:15:31 26 4
gpt4 key购买 nike

当 SonarQube 分析我使用 Gradle 和 Jenkins 构建的 Java 项目时,我收到很多关于第三方库无法通过 ClassLoader 访问的警告:

WARN  - Class 'org/slf4j/Logger' is not accessible through the ClassLoader.
WARN - Class 'com/google/gson/Gson' is not accessible through the ClassLoader.

这些库都在我的 build.gradle 中列为依赖项.

我读了 here关于使用 sonar.libraries我会给 Jar 提供一条路径的属性。但是因为 Gradle 为我下载了这些依赖项,所以我的机器上的路径是这样的: /home/siberut/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-api/1.7.5/6b262da268f8ad9eff941b25503a9198f0a0ac93/slf4j-api-1.7.5.jar .

这些路径随着库的每个新版本而变化。

那么我怎样才能摆脱这些警告呢?有没有办法让 Gradle 告诉 SonarQube jar 的位置?

谢谢

编辑:
我正在使用 SonarQube Server 4.1.1, Gradle Plugin 1.23 , Sonar Plugin 2.1 , Sonar Runner 2.3 和 gradle --version给出:
------------------------------------------------------------
Gradle 1.10
------------------------------------------------------------

Build time: 2013-12-17 09:28:15 UTC
Build number: none
Revision: 36ced393628875ff15575fa03d16c1349ffe8bb6

Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Ivy: 2.2.0
JVM: 1.7.0_21 (Oracle Corporation 23.7-b01)
OS: Linux 3.10-2-486 i386

这是包含所有警告的构建的完整控制台输出: Link

Jenkins 调用 my build.gradle像这样:
Jenkins calls build.gradle

Jenkins 像这样调用 SonarQube:
Jenkins calls SonarQube

编辑:就像 Peter Niederwieser 所说,让 Gradle 调用 SonarQube 可以消除警告。我的配置相关部分是 here .

最佳答案

你必须设置 sonar.libraries .但是为了手动设置此属性,您必须定义一个 Gradle 任务,将所有外部依赖项复制到 lib 目录,然后使用 sonar.libraries=path/to/lib/*.jar引用它们。相反,我会通过 sonar-runner 调用 Sonar Gradle 插件,它将负责为您设置上述属性(加上 sonar.libraries 和其他)。

关于jenkins - 使用 Jenkins、SonarQube 和 Gradle 修复 'Class is not accessible through the ClassLoader.' 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com