【问题标题】:WARN - Class 'XXX/XXX/XXX ' is not accessible through the ClassLoaderWARN - Class 'XXX/XXX/XXX' 不能通过 ClassLoader 访问
【发布时间】:2015-07-22 00:49:08
【问题描述】:

首先,我知道this question。由于我既没有使用 maven 也没有使用 jenkins,因此无法使用提供的解决方案。

使用 sonar-runner 分析我的项目时,我收到以下警告:

Class 'XXX/XXX/XXX' is not accessible through the ClassLoader

在我项目的每一堂课上。我还从 jacoco 覆盖插件收到以下警告:

No JaCoCo analysis of project coverage can be done since there is no class files.

我的 sonar-runner 属性定义如下:

sonar.sources=com // sources are analysed
sonar.tests=Tests/JUnit/com // works, since wrong location results in an error
sonar.binaries=bin/com // no presence in logs
sonar.java.libraries=dependencies/*.jar // no presence in logs. 
sonar.junit.reportsPath=rapports/junit // results are displayed
sonar.java.coveragePlugin=jacoco
sonar.jacoco.reportPath=rapports/jacoco/coverage.exec // not logged

不用说,我检查了各种路径(事件将它们替换为绝对对应物或列出二进制文件中的每个 jar),但我无法进行分析。

对可能出现的问题有什么想法吗?

【问题讨论】:

    标签: java sonarqube


    【解决方案1】:

    您的项目结构看起来像旧的 Eclipse/WSAD 结构,您在根目录中拥有源代码,并为编译的类提供“bin/”文件夹。您的应用程序代码看起来有一个以 com. 开头的包定义

    所以我假设这是你的结构:

    项目根 +-- * = 源文件 +-- bin/* = 编译文件 +-- 测试/JUnit/* = 测试源文件 +-- 依赖项/*.jar = 额外的 JAR 文件 +-- rapports/junit/* = JUnit 测试结果 +-- rapports/jacoco/coverage.exec = Jacoco 结果

    你的配置应该是:

    声纳.来源=。 sonar.tests=测试/JUnit sonar.jacoco.reportPath=rapports/jacoco/coverage.exec sonar.junit.reportsPath=rapports/junit sonar.java.binaries=bin sonar.java.libraries=依赖项/*.jar sonar.inclusions=com/**

    sonar.inclusions 应该有更完整的路径,例如

    sonar.inclusions=com/trajano/project/**
    

    【讨论】:

    • 我会检查一下这个配置,谢谢!您能否了解有关什么是 sonar.inclusions 的更多信息?
    • 我复制并粘贴了错误的库路径,我现在已经修复了。但是,如果您仍然收到错误,则说明您缺少 dependencies 文件夹中的依赖项
    猜你喜欢
    • 2014-07-08
    • 2012-11-20
    • 2023-03-10
    • 2019-07-07
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2014-05-13
    相关资源
    最近更新 更多