After activating jDepend in Sonar, we get "Can not add the same measure twice"
Hi,
we are using SonarQube Community 7.2.1 at the moment with pretty much everything Java activated (except jDepend). Our project is a multi-module Maven/Tycho project. Without jDepend, the Sonar runs work without problems. With jDepend plugin (1.1.1) installed and all rules added to the Profile, maven sonar:sonar quits after about 25% with the following:
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.1.1168:sonar (default-cli) on project xxx: Can not add the same measure twice on %projectname%/src/%packagename%/package-info.java: DefaultMeasure[component=%projectname%/src/%packagename%/package-info.java,metric=Metric[id=
,key=number-of-classes-and-interfaces,description= ,type=INT,direction=0,domain=Jdepend,name=Number of classes and interfaces,qualitative=false,userManaged=false,enabled=true,worstValue= ,bestValue= ,optimizedBestValue=false,hidden=false,deleteHistoricalData=false,decimalScale= ],value=5,fromCore=false] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) 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.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: Can not add the same measure twice on %projectname%/src/%packagename%/package-info.java: DefaultMeasure[component=%projectname%/src/%packagename%/package-info.java,metric=Metric[id= ,key=number-of-classes-and-interfaces,description= ,type=INT,direction=0,domain=Jdepend,name=Number of classes and interfaces,qualitative=false,userManaged=false,enabled=true,worstValue= ,bestValue= ,optimizedBestValue=false,hidden=false,deleteHistoricalData=false,decimalScale= ],value=5,fromCore=false] at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:67) at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:104) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) 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.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: java.lang.UnsupportedOperationException: Can not add the same measure twice on %projectname%/src/%packagename%/package-info.java: DefaultMeasure[component=%projectname%/src/%packagename%/package-info.java,metric=Metric[id= ,key=number-of-classes-and-interfaces,description= ,type=INT,direction=0,domain=Jdepend,name=Number of classes and interfaces,qualitative=false,userManaged=false,enabled=true,worstValue= ,bestValue= ,optimizedBestValue=false,hidden=false,deleteHistoricalData=false,decimalScale= ],value=5,fromCore=false] at org.sonar.scanner.sensor.DefaultSensorStorage.saveMeasure (DefaultSensorStorage.java:270) at org.sonar.scanner.sensor.DefaultSensorStorage.store (DefaultSensorStorage.java:214) at org.sonar.api.batch.sensor.measure.internal.DefaultMeasure.doSave (DefaultMeasure.java:95) at org.sonar.api.batch.sensor.internal.DefaultStorable.save (DefaultStorable.java:45) at nl.futureedge.sonar.plugin.jdepend.rules.NumberOfClassesAndInterfacesRule.execute (NumberOfClassesAndInterfacesRule.java:58) at nl.futureedge.sonar.plugin.jdepend.sensor.JdependSensor.execute (JdependSensor.java:76) at org.sonar.scanner.sensor.SensorWrapper.analyse (SensorWrapper.java:53) at org.sonar.scanner.phases.SensorsExecutor.executeSensor (SensorsExecutor.java:88) at org.sonar.scanner.phases.SensorsExecutor.execute (SensorsExecutor.java:82) at org.sonar.scanner.phases.SensorsExecutor.execute (SensorsExecutor.java:68) at org.sonar.scanner.phases.AbstractPhaseExecutor.execute (AbstractPhaseExecutor.java:88) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart (ModuleScanContainer.java:182) at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:122) at org.sonar.scanner.scan.ProjectScanContainer.scan (ProjectScanContainer.java:312) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively (ProjectScanContainer.java:307) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively (ProjectScanContainer.java:305) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively (ProjectScanContainer.java:305) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart (ProjectScanContainer.java:281) at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:122) at org.sonar.scanner.task.ScanTask.execute (ScanTask.java:48) at org.sonar.scanner.task.TaskContainer.doAfterStart (TaskContainer.java:81) at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:122) at org.sonar.scanner.bootstrap.GlobalContainer.executeTask (GlobalContainer.java:132) at org.sonar.batch.bootstrapper.Batch.doExecuteTask (Batch.java:116) at org.sonar.batch.bootstrapper.Batch.execute (Batch.java:71) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute (BatchIsolatedLauncher.java:46) 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.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke (IsolatedLauncherProxy.java:60) at com.sun.proxy.$Proxy24.execute (Unknown Source) at org.sonarsource.scanner.api.EmbeddedScanner.doExecute (EmbeddedScanner.java:171) at org.sonarsource.scanner.api.EmbeddedScanner.execute (EmbeddedScanner.java:128) at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:65) at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:104) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) 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.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)
The output of the maven console/run just before the failure:
[INFO] ------------- Scan %projectname% [INFO] Base dir: %workdir%%projectname% [INFO] Working dir: %workdir%%projectname%\target\sonar [INFO] Source paths: .polyglot.build.properties, src [INFO] Source encoding: UTF-8, default locale: de_DE [INFO] Index files [INFO] Excluded sources: [INFO] /src-gen/** [INFO] /src-gen-*/** [INFO] /src-legacy/** [INFO] /src-thirdparty/** [INFO] 21 files indexed [INFO] 0 files ignored because of inclusion/exclusion patterns [INFO] Quality profile for java: %profilename% [INFO] Sensor JavaSquidSensor [java] [INFO] Configured Java source version (sonar.java.source): 8 [INFO] JavaClasspath initialization [INFO] JavaClasspath initialization (done) | time=16ms [INFO] JavaTestClasspath initialization [INFO] JavaTestClasspath initialization (done) | time=0ms [INFO] Java Main Files AST scan [INFO] 18 source files to be analyzed [INFO] 18/18 source files have been analyzed [INFO] Java Main Files AST scan (done) | time=1176ms [INFO] Java Test Files AST scan [INFO] 0 source files to be analyzed [INFO] 0/0 source files have been analyzed [INFO] Java Test Files AST scan (done) | time=16ms [INFO] Sensor JavaSquidSensor [java] (done) | time=1301ms [INFO] Sensor CoberturaSensor [cobertura] [WARNING] Cobertura report not found at %workdir%%projectname%\target\site\cobertura\coverage.xml [INFO] Sensor CoberturaSensor [cobertura] (done) | time=0ms [INFO] Sensor SurefireSensor [java] [INFO] parsing [%workdir%%projectname%\target\surefire-reports] [INFO] Sensor SurefireSensor [java] (done) | time=0ms [INFO] Sensor JaCoCoSensor [java] [INFO] Analysing %workdir%%projectrootname%\target\jacoco.exec [INFO] No information about coverage per test. [INFO] Sensor JaCoCoSensor [java] (done) | time=62ms [INFO] Sensor SonarJavaXmlFileSensor [java] [INFO] Sensor SonarJavaXmlFileSensor [java] (done) | time=0ms [INFO] Sensor SmellMeasuresSensor [smells] [INFO] Sensor SmellMeasuresSensor [smells] (done) | time=15ms [INFO] Sensor jDepend sensor [jdepend] [INFO] Analysing classes in %workdir%%projectname%\target\classes
We are creating the package-info.java files on the fly as described in the Workaround.
mvn -X is not really helpful for me otherwise. The project (submodule) in question is nothing special
I currently suspect a bug (in jDepend plugin, or even Sonar), but maybe this is also just an issue with our build. Any hint on what I could try? If you need any more info, I'll be happy to try to provide, but it is a closed source project, so I can not provide sources.
Thanks in advance.
It happens to me also. And it was something that happened sudenly