I've been using the buildnumber-maven-plugin to include the build date into
my META_INF/MANIFEST.MF file. I wish I could include an SCM revision
number, but unfortunately my company uses Perforce instead of SVN :(.
Including the build date has been a nice alternative, though. It's been
working great until this morning when Maven grabbed the 1.0-beta-4 version
of the buildnumber-maven-plugin. Now I get the following exception when
trying to build:
[INFO] [buildnumber:create {execution: default}]
[INFO] Storing buildNumber: 2009-11-24 10:31:22 MST at timestamp:
1259083882019
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Cannot get the branch information from the scm repository :
Exception while executing SCM command.
org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository
cannot be cast to
org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository
[INFO]
------------------------------------------------------------------------
Is it no longer valid to use the buildnumber-maven-plugin without using SVN?
It's been really useful for storing the build date, but is this something
that is no longer supported? I didn't see anything in the docs that would
suggest that this is no longer supported. I can force my build to stay on
1.0-beta-3 and continue working, but I'm curious if this is a bug in
1.0-beta-4 or if it's not allowed anymore.
My plugin configuration looks like this:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<format>{0,date,yyyy-MM-dd HH:mm:ss z}</format>
<items>
<item>timestamp</item>
</items>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
</configuration>
</plugin>
The full exception is this:
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Cannot get the
branch information from the scm repository :
Exception while executing SCM command.
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(DefaultLifecycleExecutor.java:1205)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(DefaultLifecycleExecutor.java:1038)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:643)
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:348)
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:597)
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: Cannot get the
branch information from the scm repository :
Exception while executing SCM command.
at
org.codehaus.mojo.build.CreateMojo.getScmBranch(CreateMojo.java:606)
at org.codehaus.mojo.build.CreateMojo.execute(CreateMojo.java:452)
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
... 21 more
Caused by: org.apache.maven.scm.ScmException: Exception while executing SCM
command.
at
org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:63)
at
org.apache.maven.scm.provider.svn.AbstractSvnScmProvider.executeCommand(AbstractSvnScmProvider.java:354)
at
org.apache.maven.scm.provider.svn.AbstractSvnScmProvider.info<http://org.apache.maven.scm.provider.svn.abstractsvnscmprovider.info/>
(AbstractSvnScmProvider.java:375)
at
org.codehaus.mojo.build.CreateMojo.info<http://org.codehaus.mojo.build.createmojo.info/>
(CreateMojo.java:694)
at
org.codehaus.mojo.build.CreateMojo.getScmBranch(CreateMojo.java:594)
... 24 more
Caused by: java.lang.ClassCastException:
org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository
cannot be cast to
org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository
at
org.apache.maven.scm.provider.svn.svnexe.command.info.SvnInfoCommand.executeCommand(SvnInfoCommand.java:54)
at
org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:59)
... 28 more
Thanks in advance for any help!
--David