maven svn sonarqube sonarqube-5.0 sonarqube5.1

maven - Error en SonarQube al ejecutar svn culpa



sonarqube-5.0 sonarqube5.1 (6)

Tuve este problema y fue causado por no tener una instalación activa de SVN en la máquina de compilación que estaba ejecutando el análisis de sonar. No importa qué haya instalado la caja del sónar. Es el agente de creación el que debe culpar al SVN.

Estaba usando CentOS. La magia era

sudo yum install svn

El truco final fue asegurarse de que la máquina de compilación utilizara la misma versión de SVN para el pago como la versión que instalé. Si la máquina de compilación utilizaba de forma nativa una versión diferente, es posible que deba asegurarse de que limpia todo el espacio de trabajo antes de su próxima comprobación.

¡Finalmente, no olvide que Sonar necesita sus credenciales de SVN también!

Recientemente actualicé mi servidor SonarQube de 4.5.2 a 5.0.1, luego a 5.1 (vea la edición a continuación).

De repente, el análisis de un proyecto Maven de varios módulos falló con el siguiente error:

[INFO] [12:02:05.045] Sensor SCM Sensor... [INFO] [12:02:05.169] SCM provider for this project is: svn [INFO] [12:02:05.169] Retrieve SCM blame information... [INFO] [12:02:05.185] 650 files to be analyzed [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] myproject ......................................... FAILURE [3:21.165s] [INFO] module1 ........................................... SKIPPED [INFO] module2 ........................................... SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2:42.429s [INFO] Finished at: Thu Feb 26 11:30:01 CET 2015 [INFO] Final Memory: 73M/2020M [DEBUG] [11:30:01.789] Executing: svn blame --xml --non-interactive -x -w src/main/java/MyClass.java [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project myproject: java.io.IOException: Cannot run progra m "svn" (in directory "C:/somedirectory/module1"): CreateProcess error=2, The system cannot find the file specified at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: java.io.IOException: Cannot run program "svn" (in directory "C:/somedirectory/module1"): CreateProcess error=2, The system cannot find the file specified at org.codehaus.mojo.sonar.bootstrap.ExceptionHandling.handle(ExceptionHandling.java:41) at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:139) at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:138) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 19 more

De alguna manera, el comando svn no encontró el archivo src/main/java/MyClass.java en el directorio C:/somedirectory/module1 , aunque ese archivo definitivamente está allí. Si copio y pego el comando SonarQube está intentando ejecutar en un símbolo del sistema svn blame --xml --non-interactive -x -w src/main/java/MyClass.java dentro del directorio C:/somedirectory/module1 luego el comando está funcionando bien

svn comando svn está correctamente en la RUTA, como se puede ver en el campo "Ruta de la Biblioteca" en la página "Información del Sistema" en el servidor SonarQube. El servidor SonarQube está alojado en el mismo servidor donde se mvn sonar:sonar (Windows Server 2008 R2).

svn está siendo lanzado por SonarQube para recuperar el historial de acusaciones. Según tengo entendido, se hicieron algunos cambios en SonarQube 5.0 con respecto a la compatibilidad con SCM (cambio a built-in). Mi solución por ahora es desactivar el sensor SCM en SonarQube (usando -Dsonar.scm.disabled=true o directamente en el servidor SonarQube, en "Configuración> Configuración general> SCM").

Esto no está relacionado con esta pregunta ya que solo encontré ese comportamiento cuando actualicé a SonarQube 5.0.1.

JRE utilizado: 1.7.0_51 (64 bits)

EDITAR:

Después de una actualización a SonarQube 5.1, el error sigue aquí, pero el mensaje es diferente y más claro. He reinstalado un cliente SVN (TortoiseSVN) y reinicié tanto Jenkins como SonarQube pero el error permanece:

El proveedor SCM se configuró en "svn" pero no se encontró ningún proveedor SCM para esta clave. No hay ningún proveedor de SCM instalado

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project bombardier: SCM provider was set to "svn" but no SCM provider found for this key. No SCM provider installed -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project bombardier: SCM provider was set to "svn" but no SCM provider found for this key. No SCM provider installed at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: SCM provider was set to "svn" but no SCM provider found for this key. No SCM provider installed at org.codehaus.mojo.sonar.bootstrap.ExceptionHandling.handle(ExceptionHandling.java:41) at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:139) at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:138) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 19 more Caused by: java.lang.IllegalArgumentException: SCM provider was set to "svn" but no SCM provider found for this key. No SCM provider installed at org.sonar.batch.scm.ScmConfiguration.setProviderIfSupported(ScmConfiguration.java:123) at org.sonar.batch.scm.ScmConfiguration.considerOldScmUrl(ScmConfiguration.java:133) at org.sonar.batch.scm.ScmConfiguration.start(ScmConfiguration.java:109) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) at org.picocontainer.behaviors.Stored.start(Stored.java:110) at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1015) at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1008) at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:766) at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:91) at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:57) at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:45) at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:135) at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:158) at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95) at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67) at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) at java.security.AccessController.doPrivileged(Native Method) at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) at org.sonar.runner.api.Runner.execute(Runner.java:100) at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:135) ... 22 more


Verifique que el proceso de SonarQube tenga las mismas variables ambientales, ya que lo está utilizando para las pruebas.


Acabo de instalar SonarQube 5.0.1 en una máquina Redhat Linux y tengo exactamente el mismo problema.

En lugar de deshabilitar el plugin de estadísticas scm, he instalado un cliente svn (svnkit.x86_64) y la compilación se ejecuta con éxito con SCM activado. Supongo que en Windows, debe instalar un cliente svn y ponerlo en la RUTA.


Este problema se puede resolver de dos maneras,
1. configurando sonar.properties -Dsonar.scm.disabled = True, esto es válido solo para sonarunner.bat sonar analysis,
2. Si está usando otro tipo de análisis, inicie sesión con admin administrador predeterminado es admin / admin (nombre de usuario / contraseña). http: // yourDomin: port / settings / index (ej. http: // localhost: 9000 / settings / index ) luego en categoría seleccione scm y deshabilite el sensor scm configurado como verdadero.
3.o bien, puede agregar el plugin svn al sonar http: // your_domain: port / updatecenter / disponible después de iniciar sesión como administrador (admin / admin), buscar el complemento disponible y seleccionar el svn e instalarlo ..


utiliza el siguiente comando que desactivará los problemas relacionados con svn

-Dsonar.scm.disabled=True

esto deshabilitará el svn