Le message d'erreur suivant s'affiche lors de l'exécution de l'étape de préparation du plug-in Maven, à savoir mvn release:prepare --batch-mode -DreleaseVersion=1.1.2 -DdevelopmentVersion=1.2.0-SNAPSHOT -Dtag=v1.1.2 -X
sur un plan Atlassian Bamboo. Cependant, faire la même chose en ligne de commande fonctionne bien. La pile d'erreur complète est ci-dessous.
Des idées comment cela peut-il être résolu?
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project hpcmom: An error is occurred in the checkin process: Exception while executing SCM command. Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref -> [Help 1]
org.Apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.Apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project hpcmom: An error is occurred in the checkin process: Exception while executing SCM command.
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:320)
at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:156)
at org.Apache.maven.cli.MavenCli.execute(MavenCli.Java:537)
at org.Apache.maven.cli.MavenCli.doMain(MavenCli.Java:196)
at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:141)
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:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.Java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.Java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:352)
Caused by: org.Apache.maven.plugin.MojoExecutionException: An error is occurred in the checkin process: Exception while executing SCM command.
at org.Apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.Java:281)
at org.Apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.Java:232)
at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:101)
at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:209)
... 19 more
Caused by: org.Apache.maven.shared.release.ReleaseExecutionException: An error is occurred in the checkin process: Exception while executing SCM command.
at org.Apache.maven.shared.release.phase.AbstractScmCommitPhase.checkin(AbstractScmCommitPhase.Java:160)
at org.Apache.maven.shared.release.phase.AbstractScmCommitPhase.performCheckins(AbstractScmCommitPhase.Java:145)
at org.Apache.maven.shared.release.phase.ScmCommitPreparationPhase.runLogic(ScmCommitPreparationPhase.Java:76)
at org.Apache.maven.shared.release.phase.AbstractScmCommitPhase.execute(AbstractScmCommitPhase.Java:78)
at org.Apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.Java:234)
at org.Apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.Java:169)
at org.Apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.Java:146)
at org.Apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.Java:107)
at org.Apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.Java:277)
... 22 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.git.AbstractGitScmProvider.executeCommand(AbstractGitScmProvider.Java:291)
at org.Apache.maven.scm.provider.git.AbstractGitScmProvider.checkin(AbstractGitScmProvider.Java:217)
at org.Apache.maven.scm.provider.AbstractScmProvider.checkIn(AbstractScmProvider.Java:410)
at org.Apache.maven.shared.release.phase.AbstractScmCommitPhase.checkin(AbstractScmCommitPhase.Java:156)
... 30 more
Caused by: org.Apache.maven.scm.ScmException: Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref
at org.Apache.maven.scm.provider.git.gitexe.command.branch.GitBranchCommand.getCurrentBranch(GitBranchCommand.Java:147)
at org.Apache.maven.scm.provider.git.gitexe.command.checkin.GitCheckInCommand.createPushCommandLine(GitCheckInCommand.Java:192)
at org.Apache.maven.scm.provider.git.gitexe.command.checkin.GitCheckInCommand.executeCheckInCommand(GitCheckInCommand.Java:132)
at org.Apache.maven.scm.command.checkin.AbstractCheckInCommand.executeCommand(AbstractCheckInCommand.Java:54)
at org.Apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.Java:59)
... 34 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoExecutionException
simple 02-Dec-2013 17:18:09 Failing task since return code of [/opt/dev/Apache-maven/3.0.5//bin/mvn -Djava.io.tmpdir=/opt/atlassian/bamboo/5.2.1/temp/HPCMOM-RELEASE-JOB1 release:prepare --batch-mode -DignoreSnapshots=false -DreleaseVersion=1.1.2 -DdevelopmentVersion=1.2.0-SNAPSHOT -Dtag=v1.1.2 -X] was 1 while expected 0
PDATE:
Faire git ls-remote .
sur un clone d’espace de travail local produit:
azg@Olympus:~/code/hpcmom$ git ls-remote .
7894eea08a0afecb99515d1339623be63a7539d4 HEAD
7894eea08a0afecb99515d1339623be63a7539d4 refs/heads/master
7894eea08a0afecb99515d1339623be63a7539d4 refs/remotes/Origin/HEAD
7894eea08a0afecb99515d1339623be63a7539d4 refs/remotes/Origin/master
6a7095b86cccdfd4b28e4dea633d0930809ae9ac refs/tags/v1.0
1a53462b1ecf0abfea8245016304cda9c78b420d refs/tags/v1.0^{}
5113a7cbcf35c47b680a9c36e15e5fa01ef1d2e6 refs/tags/v1.1
79a3073ecabe65d3c8051520f8007d9e49a65a06 refs/tags/v1.1^{}
a00249209597ea1214d80ee38f228c40db7022c2 refs/tags/v1.1.0
e892bce8d25d87368ab557fee0d30810bef7e31e refs/tags/v1.1.0^{}
b491a312c39088533cb069e4ab1ae8a00d1f6bfe refs/tags/v1.1.2
a3f7618dada7ed60d8190426152ffd90e0e40a86 refs/tags/v1.1.2^{}
Faire git ls-remote .
sur le clone Bamboo produit:
azg@Olympus:/var/atlassian/application-data/bamboo/xml-data/build-dir/HPCMOM-RELEASE-JOB1$ git ls-remote .
2422ce066ac35dae3c54f1435ef8dae5008a9a14 HEAD
57c08d581c0fd9e788049733fbdc9c22b9a6ae00 refs/heads/master
57c08d581c0fd9e788049733fbdc9c22b9a6ae00 refs/remotes/Origin/HEAD
57c08d581c0fd9e788049733fbdc9c22b9a6ae00 refs/remotes/Origin/master
7539f9700d78a1b766fca7ed9f409914f1ea9d08 refs/tags/vnull
6bfa8c3fdb1f8f56a385035f01b1b77b6e88da8b refs/tags/vnull^{}
et c'est très étrange, pourquoi la sortie du clone de développement local est-elle si différente de celle de Bamboo?
Le problème dans Atlassian Bamboo a été résolu en décochant le paramètre par défaut Use shallow clones
avec description Fetches the shallowest commit history possible. Do not use if your build depends on full repository history
. Cette case à cocher se trouve sous Configuration du plan -> onglet Référentiels -> Git -> Options avancées
Après cela, toutes les versions fonctionnent bien.
J'ai rencontré la même erreur sur Jenkins en combinaison avec le plugin maven release, nous l'avons corrigée en allant dans Autres comportements, consultez une branche spécifique et entrez "maître".
Je me rends compte que ce n’est pas une solution, mais cela pourrait vous donner une idée de la direction à prendre.
Pour Jenkins et GIT, ajoutez le comportement supplémentaire check out to specific local branch
et utilisez le Workspace Cleanup Plugin
pour nettoyer votre espace de travail au début de votre travail de CI.
Décocher la Use shallow clones
n'était pas suffisant dans mon cas (j'utilise Bamboo 5.7.2). J'avais aussi besoin d'activer Force Clean Build
dans la tâche d'extraction du code source. Activer le Use shallow clones
fonctionnerait pour la prochaine exécution du travail, mais toute exécution ultérieure entraînerait la même erreur.
J'ai vu ce problème sous Bamboo utilisé avec le plug-in Maven Release. Je l'ai corrigé en activant l'option 'Forcer la construction propre' dans la tâche 'Vérification de la source'. Bamboo dit que cela pourrait ralentir la construction, mais cela fonctionne et je n'ai pas vu d'augmentation significative du temps.
ce qui a fonctionné pour moi a été d’appeler "git checkout -f master" avant d’appeler "mvn release"
J'utilise un projet d'équipe Jenkins avec une configuration de projet multibranches.
J'ai déjà utilisé checkout scm
commande.
Maintenant, j'utilise le code suivant:
checkout([
$class: 'GitSCM',
branches: scm.branches,
extensions: scm.extensions + [[$class: 'CleanCheckout'], [$class: 'LocalBranch', localBranch: 'new']],
userRemoteConfigs: scm.userRemoteConfigs
])
Pour nous, le problème concernait la version de maven spécifiée dans le fichier pom. Correction de la version de maven spécifiée dans le fichier pom conformément à celle en bambou