Jenkins and maven-buildnumber-plugin

I am using mavenbuildnumber-plugin version 1.0-beta-4. This works fine on a project checked out of Subversion, but fails in Jenkins.

I assume this problem is due to Jenkins somehow removing the .svn folders.

  • Tracking code versions in an executable
  • Best way to handle old snapshots in local repository?
  • Runner type : SSH exec not found in teamcity
  • Jenkins/Hudson - How to run multiple jobs in parallel more than 1 level deep?
  • Xcode build automation scheduled integration bot setting
  • Setting Maven params in Jenkins
  • I assumed wrong. Here is the error I got:

    maven builder waiting
    mavenExecutionResult exceptions not empty
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:buildnumber-maven-plugin:1.0-beta-4:create (default) on project swift-core: Cannot get the revision information from the scm repository : 
    Error!
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
        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:319)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
        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:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
        at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:146)
        at hudson.maven.Maven3Builder.call(Maven3Builder.java:124)
        at hudson.maven.Maven3Builder.call(Maven3Builder.java:71)
        at hudson.remoting.UserRequest.perform(UserRequest.java:114)
        at hudson.remoting.UserRequest.perform(UserRequest.java:48)
        at hudson.remoting.Request$2.run(Request.java:270)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
    Caused by: org.apache.maven.plugin.MojoExecutionException: Cannot get the revision information from the scm repository : 
    Error!
        at org.codehaus.mojo.build.CreateMojo.getRevision(CreateMojo.java:673)
        at org.codehaus.mojo.build.CreateMojo.execute(CreateMojo.java:431)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        ... 27 more
    Caused by: org.apache.maven.scm.ScmException: Error!
        at org.codehaus.mojo.build.CreateMojo.checkResult(CreateMojo.java:753)
        at org.codehaus.mojo.build.CreateMojo.getRevision(CreateMojo.java:648)
        ... 30 more
    

    I overlooked this:

    Provider message:
    The svn command failed.
    Command output:
    /bin/sh: svn: command not found
    
    mojoFailed org.codehaus.mojo:buildnumber-maven-plugin:1.0-beta-4(default)
    

    There is no svn client installed on the machine, that is the true source of trouble.

  • Run custom database scripts in Jenkins
  • Check if a PR is up to date with the target branch
  • Jenkins pipeline : select nodejs version (+ python version)
  • Protect Jenkins with nginx http auth except callback url
  • Pass variable from jenkins to testng.xml
  • What are Jenkins best practices with building with Grunt and deploying with Capistrano?
  • One Solution collect form web for “Jenkins and maven-buildnumber-plugin”

    The error message shows that the command svn is not installed on the build machine. You can use javasvn as your providerImplementation with this configuration:

       <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>create</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <doCheck>true</doCheck>
          <doUpdate>true</doUpdate>
          <providerImplementations>
            <svn>javasvn</svn>
          </providerImplementations>          
        </configuration>
      </plugin>
    

    See http://mojo.codehaus.org/buildnumber-maven-plugin/using-svnjava.html

    If you need a specific version of Subversion (we’re still using 1.5 here) you can pin to a specific version of svnkit too:

        <dependency>
            <groupId>org.tmatesoft.svnkit</groupId>
            <artifactId>svnkit</artifactId>
            <version>1.2.3.5521</version>
        </dependency>
    
    Git Baby is a git and github fan, let's start git clone.