Details
-
Type:
Improvement
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: SCM-ACTIVITY-1.3
-
Fix Version/s: SCM-ACTIVITY-1.4
-
Component/s: SCM Activity
-
Labels:None
-
Environment:Sonar 2.7, Jenkins ANT Build, pom generated during build
-
Number of attachments :
Description
It looks like the 'Retrieve changelog' is based on the path to the Sonar configuration file (which is a pom when Maven is used) given with the build. This leads to an error for instance if the pom is generated and therefor not under scm control.
[1.0.0] $ mvn -f prj/build/sonar/pom.xml ... -e -B sonar:sonar .... [INFO] Retrieve changelog from revision 1... [INFO] It can be long this first time. Next analysis will be faster. [INFO] Executing: /bin/sh -c cd /export/build/hudson/jobs/prj-1.0.0/workspace/1.0.0/prj/build/sonar && svn --username foo --password '*****' --no-auth-cache --non-interactive --trust-server-cert log -v -r 1:BASE [INFO] Working directory: /export/build/hudson/jobs/prj-1.0.0/workspace/1.0.0/prj/build/sonar [INFO] Retrieve changelog from revision 1 done: 31 ms [INFO] ------------------------------------------------------------------------ [ERROR] BUILD ERROR [INFO] ------------------------------------------------------------------------ [INFO] Can not execute Sonar Embedded error: Unable to retrieve changelog: svn: '.' is not a working copy [INFO] ------------------------------------------------------------------------ [INFO] Trace org.apache.maven.lifecycle.LifecycleExecutionException: Can not execute Sonar at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.plugin.MojoExecutionException: Can not execute Sonar at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:103) at org.codehaus.mojo.sonar.Bootstraper.start(Bootstraper.java:79) at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:88) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) ... 17 more Caused by: org.sonar.api.utils.SonarException: Unable to retrieve changelog: svn: '.' is not a working copy at org.sonar.plugins.scmactivity.Changelog.retrieveChangeSets(Changelog.java:105) at org.sonar.plugins.scmactivity.Changelog.load(Changelog.java:55) at org.sonar.plugins.scmactivity.ScmActivitySensor.analyse(ScmActivitySensor.java:83) at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:59) at org.sonar.batch.phases.Phases.execute(Phases.java:75) at org.sonar.batch.ProjectBatch.execute(ProjectBatch.java:55) at org.sonar.batch.Batch.analyzeModule(Batch.java:158) at org.sonar.batch.Batch.analyzeModules(Batch.java:76) at org.sonar.batch.Batch.execute(Batch.java:62) at org.sonar.maven.SonarMojo.executeBatch(SonarMojo.java:151) at org.sonar.maven.SonarMojo.execute(SonarMojo.java:142) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:98) ... 21 more
This extractor should be able to work with the scm connection url in such case or with another additional provided root directory.
Issue Links
- is depended upon by
-
SONARPLUGINS-1287
Unable to retrieve Git changelog when Sonar executed from directory, which is symlink to original one
-
I guess we could use this SCM developerConnection only if available and otherwise keep the current behavior.