web-dev-qa-db-fra.com

Sonar - Impossible de charger la classe de composant org.sonar.scanner.scan.ProjectLock

J'ai des problèmes lors de l'exécution de Sonar sur mon projet netbeans. Cela ne fonctionne pas et j'ai l'erreur suivante:

C:\Users\remy.fischer\Desktop\NetBeansProjects\NetBeansProjects\BinPacking\sonar-scanner-3.0.3.778-windows\bin>sonar-scanner -Dsonar.projectKey=..... -Dsonar.projectName=...
    INFO: Scanner configuration file: C:\Users\remy.fischer\Desktop\NetBeansProjects
    \NetBeansProjects\BinPacking\sonar-scanner-3.0.3.778-windows\bin\..\conf\sonar-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:\Users\remy.fischer\.sonar\cache
    can't open C:\Users\remy.fischer\Desktop\NetBeansProjects\NetBeansProjects\BinPa
    cking\sonar-scanner-3.0.3.778-windows\jre\lib\tzmappings.
    INFO: Load global settings
    INFO: Load global settings (done) | time=62ms
    INFO: User cache: C:\Users\remy.fischer\.sonar\cache
    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:\Users\remy.fischer\Desktop\NetBeansProjects\NetBeansProjects\BinPacking\sonar-scanner-3.0.3.778-windows\bin>

Je ne sais pas quoi faire, j'ai essayé beaucoup de choses que j'ai vues ici mais rien ne fonctionne malheureusement ..

7
Rémy Fischer

J'ai aussi cela, mais j'utilisais gradle pour exécuter sonar pour sonarcloud.io, une fois que j'ai activé --stacktrace and --debug, il était clair dans les journaux que cette erreur me provoquait car mes informations d'identification n'étaient pas reconnues par le serveur sonar. Je les ai vérifiées et après avoir changé les références, tout s'est bien passé.

Donc, en plus d'essayer de l'exécuter avec -X comme suggéré pour obtenir plus d'informations, je vous suggérerais également de vérifier vos informations d'identification.

5
Caleb

J'ai eu exactement la même erreur en essayant de déclencher une analyse sonar à partir de Jenkins. Après des heures de recherche, j’ai réalisé que le problème était lié à la définition de la trajectoire. 

Dans votre fichier sonar-project.properties ou dans la section de configuration SonarQube de la section de configuration de projet, assurez-vous que la propriété sonar.sources définit un chemin d'accès à l'aide de barres obliques (/).

la propriété doit être définie comme suit: sonar.sources = D:/software/jenkins/JenkinsHome/workspace/test_jenkins

et PAS comme ceci: sonar.sources = D:\software\jenkins\JenkinsHome\workspace\test_jenkins

2
Loui Smith

J'ai eu le même problème pendant que j'essayais de configurer les contrôles de demande d'extraction pour Sonarqube sur Github. Les références étaient correctes dans mon cas mais je donnais sonar.github.repository=myorg:myrepository et cela causait cette erreur. Je l'ai corrigé en le changeant en sonar.github.repository=myorg/myrepository

Peut-être que cela peut aider quelqu'un ...

1
efdestegul