如何解决声纳错误:无法加载组件类org.sonar.scanner.scan.ProjectLock



在我的netbeans项目上运行Sonar时遇到了一些问题。它不起作用,我有以下错误:

C:Usersremy.fischerDesktopNetBeansProjectsNetBeansProjectsBinPackingsonar-scanner-3.0.3.778-windowsbin>sonar-scanner -Dsonar.projectKey=..... -Dsonar.projectName=...
    INFO: Scanner configuration file: C:Usersremy.fischerDesktopNetBeansProjects
    NetBeansProjectsBinPackingsonar-scanner-3.0.3.778-windowsbin..confsonar-s
    canner.properties
    INFO: Project root configuration file: NONE
    INFO: SonarQube Scanner 3.0.3.778
    INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
    INFO: Windows 7 6.1 amd64
    INFO: User cache: C:Usersremy.fischer.sonarcache
    can't open C:Usersremy.fischerDesktopNetBeansProjectsNetBeansProjectsBinPa
    ckingsonar-scanner-3.0.3.778-windowsjrelibtzmappings.
    INFO: Load global settings
    INFO: Load global settings (done) | time=62ms
    INFO: User cache: C:Usersremy.fischer.sonarcache
    INFO: Load plugins index
    INFO: Load plugins index (done) | time=0ms
    INFO: SonarQube server 6.4.0
    INFO: Default locale: "fr_FR", source code encoding: "UTF-8"
    INFO: Process project properties
    INFO: ------------------------------------------------------------------------
    INFO: EXECUTION FAILURE
    INFO: ------------------------------------------------------------------------
    INFO: Total time: 1.248s
    INFO: Final Memory: 39M/178M
    INFO: ------------------------------------------------------------------------
    ERROR: Error during SonarQube Scanner execution
    java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.scan.ProjectLock
            at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:71)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:678)
            at org.sonar.core.platform.ComponentContainer.getComponentByType(ComponentContainer.java:283)
            at org.sonar.scanner.scan.ProjectScanContainer.doBeforeStart(ProjectScanContainer.java:110)
            at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
            at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
            at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
            at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86)
            at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
            at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
            at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:118)
            at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:117)
            at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
            at com.sun.proxy.$Proxy0.execute(Unknown Source)
            at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
            at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
            at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
            at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
            at org.sonarsource.scanner.cli.Main.main(Main.java:61)
    Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.api.batch.bootstrap.ProjectReactor
            at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:71)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
            at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
            at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
            at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
            at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
            at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
            at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
            at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
            at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
            at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
            at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
            at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
            at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:69)
            ... 23 more
    emy.fischerDesktopNetBeansProjectsNetBeansProjectsBinPackingsrcbinpacking
            at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
            at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
            at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
            at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
            at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
            at java.nio.file.Paths.get(Paths.java:84)
            at org.sonar.scanner.scan.ProjectReactorBuilder.resolvePath(ProjectReactorBuilder.java:395)
            at org.sonar.scanner.scan.ProjectReactorBuilder.checkExistenceOfPaths(ProjectReactorBuilder.java:385)
            at org.sonar.scanner.scan.ProjectReactorBuilder.cleanAndCheckModuleProperties(ProjectReactorBuilder.java:368)
            at org.sonar.scanner.scan.ProjectReactorBuilder.cleanAndCheckProjectDefinitions(ProjectReactorBuilder.java:334)
            at org.sonar.scanner.scan.ProjectReactorBuilder.execute(ProjectReactorBuilder.java:126)
            at org.sonar.scanner.scan.MutableProjectReactorProvider.provide(MutableProjectReactorProvider.java:30)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.picocontainer.injectors.MethodInjector.invokeMethod(MethodInjector.java:129)
            at org.picocontainer.injectors.MethodInjector.access$000(MethodInjector.java:39)
            at org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:113)
            at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
            at org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120)
            at org.picocontainer.injectors.CompositeInjector.decorateComponentInstance(CompositeInjector.java:58)
            at org.picocontainer.injectors.Reinjector.reinject(Reinjector.java:142)
            at org.picocontainer.injectors.ProviderAdapter.getComponentInstance(ProviderAdapter.java:96)
            at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
            at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:69)
            ... 37 more
    ERROR:
    ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
    C:Usersremy.fischerDesktopNetBeansProjectsNetBeansProjectsBinPackingsonar-scanner-3.0.3.778-windowsbin>

我不知道该怎么办,我已经尝试了很多我在这里看到的东西,但不幸的是没有任何效果。

我也有这个,但是 sonarcloud.io 一旦我打开--stacktrace--debug从日志中可以清楚地看出我收到此错误,因为我的凭据没有得到声纳服务器的识别。我已经仔细检查了它们,在更改为正确的凭据后一切正常。

因此,除了尝试按照建议使用-X运行它以获取更多信息外,我建议您还尝试仔细检查您的凭据

在尝试从 Jenkins 内部触发声纳分析时,我遇到了同样的错误,经过数小时的搜索,我发现问题与路径定义有关。

在您的 sonar-project.properties 文件或项目配置部分中的 SonarQube 配置部分中,确保属性 sonar.sources 使用正斜杠 (/( 定义路径

该属性必须像这样定义:sonar.sources=D:/software/jenkins/JenkinsHome/workspace/test_jenkins

而不是这样的:sonar.sources=D:\software\jenkins\JenkinsHome\workspace\test_jenkins

当我尝试在Github上为Sonarqube配置拉取请求检查时,我遇到了同样的问题。在我的情况下,凭据是正确的,但我正在提供 sonar.github.repository=myorg:myrepository,它导致了此错误。我通过将其更改为sonar.github.repository=myorg/myrepository来修复它

也许它可以帮助某人...

这可能是

因为项目目录的所有者和声纳扫描仪的所有者不同,尝试授予项目目录755,以便声纳扫描仪可以访问this

对我们来说,问题是接口意外地在文件名中的 I 上方有一个帽子,该文件被命名为 ÎFoo

解决此问题的最佳方法是使用 --stacktrace 运行。这将提供完整的日志,您可以轻松识别问题。就我而言,问题是因为模块未正确定义。

我也

遇到了这个问题,但我能够通过删除从市场下载的外部 SonarQube 插件来解决。我不确定它是否可以解决您的问题,但希望它可以帮助您。

我遇到了同样的问题。如果您在 Docker 中运行 SonaeQube,请尝试删除与 SonarQube docker volume rm <some SonarQube volume> 绑定的卷。如果您在 docker 中仅使用 SonarQube 并且其他映像不重要或不存在,您可以使用(警告:该命令删除计算机上的所有卷(docker volume prune。您也可以在创建 docker 容器时使用标志--remove-orphans,例如:docker-compose up -d --remove-orphans .这个标签说文档:

删除撰写文件中未定义的服务的容器。

如果您在不清除卷的情况下切换 SonarQube 版本,则可能会出现此问题

如果这对任何人有帮助,创建<sonar-scanner-dir>/conf/sonar-scanner.properties文件会为我修复它。

它实际上首先有效,但在将其全部移动到 docker 映像时损坏 - 我忘了将<sonar-scanner-dir>/conf/sonar-scanner.properties文件移入。

请参阅此处的第六篇帖子:您必须为"未知"定义以下必需属性:sonar.projectKey - 获取帮助/SonarQube - SonarSource Community

顺便说一句:我收到的错误消息还包含以下内容,这些内容未包含在OP的帖子中:

错误:必须为 定义以下必需属性"未知":声纳项目密钥

我遇到了同样的问题。我重新启动了SonarQube服务器,声纳扫描仪命令起作用了。

如果您在Node中遇到此错误。

  1. 删除包锁.json
  2. 删除node_modules
  • 运行 npm 安装
  • 运行声纳扫描仪

面对这个问题。对我来说,sonar.sources属性中给出的路径是错误的。

尽管错误表明问题出在加载类上,但根本原因主要是声纳属性存在一些问题。

对我来说

,问题是我的sonar-project.properties中有一个错误的逗号:sonar.sourceEncoding = UTF-8,

最新更新