Ich erhalte die folgende Fehlerausgabe, während ich den Vorbereitungsschritt für das Maven-Release-Plugin ausführe, dh mvn release:prepare --batch-mode -DreleaseVersion=1.1.2 -DdevelopmentVersion=1.2.0-SNAPSHOT -Dtag=v1.1.2 -X
aus einem Atlassian Bamboo-Plan. Dasselbe in der Befehlszeile zu tun, funktioniert jedoch einwandfrei. Der vollständige Fehlerstapel ist unten.
Irgendwelche Ideen, wie dies gelöst werden kann?
[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
AKTUALISIEREN:
Wenn Sie git ls-remote .
einen lokalen Arbeitsbereichsklon ausführen, wird Folgendes erzeugt:
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^{}
Wenn Sie git ls-remote .
mit dem Bambusklon arbeiten, erhalten Sie:
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^{}
und das ist sehr seltsam, warum unterscheidet sich die Ausgabe des lokalen Entwicklungsklons so stark von der von Bamboo?
HEAD
nicht mehr auf einen Zweigstellennamen, sondern auf einen SHA1 bezieht. Sie können dies lokal simulieren, indem Sie den Namen einer Referenzgit checkout SHA1
ausführen oder an diesen anhängen^{}
:git checkout HEAD^{}
. Es sieht so aus, als ob das Bamboo Git Plugin versucht, den Zweig auszuchecken, wenn es überhaupt möglich ist. Es sieht also so aus, als hätten Sie ein Rennen: Bevor der Build ausgeführt wird, sind neue Dinge aufgetaucht. Mir ist noch nicht klar, wie ich das beheben soll.Antworten:
Ich bin auf denselben Fehler bei Jenkins in Kombination mit dem Maven-Release-Plugin gestoßen. Wir haben ihn behoben, indem wir zu Zusätzliche Verhaltensweisen gegangen sind. In einem bestimmten lokalen Zweig auschecken und 'master' eingeben.
Mir ist klar, dass dies keine Lösung ist, aber es könnte Ihnen eine Richtung geben, in die Sie schauen müssen.
quelle
git symbolic-ref
Befehl schlägt also fehl. Durch HinzufügenCheck out to specific local branch
beheben wir dies.**
anstelle von verwenden,master
wird der Name des lokalen Zweigs mit dem Namen des Remote-Zweigs abgeglichen.**
, wird der Zweigname aus dem Remote-Zweig ohne Ursprung berechnet . "Fügen Sie für Jenkins und GIT das zusätzliche Verhalten hinzu
check out to specific local branch
und verwenden Sie das,Workspace Cleanup Plugin
um Ihren Arbeitsbereich am Anfang Ihres CI-Jobs zu bereinigen.quelle
-Darguments="-Dmaven.deploy.skip=true"
.Das Problem in Atlassian Bamboo wurde gelöst, indem die Standardeinstellung
Use shallow clones
mit Beschreibung deaktiviert wurdeFetches the shallowest commit history possible. Do not use if your build depends on full repository history
. Dieses Kontrollkästchen befindet sich unter Plan-Konfiguration -> Registerkarte Repositorys -> Git -> Erweiterte OptionenDanach funktionieren alle Releases einwandfrei.
quelle
Das Deaktivieren von
Use shallow clones
war in meinem Fall nicht ausreichend (ich verwende Bamboo 5.7.2). Ich musste auch dieForce Clean Build
Aufgabe "Quellcode-Checkout" aktivieren . Das Aktivieren vonUse shallow clones
würde für die nächste Ausführung des Jobs funktionieren, aber jede nachfolgende Ausführung würde zu demselben Fehler führen.quelle
Ich habe dieses Problem unter Bamboo gesehen, das mit dem Maven Release-Plug-In verwendet wurde. Ich habe das Problem behoben, indem ich die Option "Clean Build erzwingen" in der Aufgabe "Source Checkout" aktiviert habe. Bamboo sagt, dies könnte den Build verlangsamen, aber es funktioniert und ich habe keinen signifikanten Zeitanstieg gesehen.
quelle
Ich verwende ein Jenkins-Teamprojekt mit einem Multibranch-Projekt-Setup.
Ich habe vorher benutzt
checkout scm
Befehl verwendet.Jetzt verwende ich den folgenden Code:
quelle
new
mit**
, die die lokalen Zweignamen als entfernten das gleiche macht.Was für mich funktionierte war, "git checkout -f master" aufzurufen, bevor ich "mvn release" aufrief.
quelle
Für uns war das Problem mit der in der POM-Datei angegebenen Maven-Version. Das Problem wurde behoben, indem die in der POM-Datei angegebene Maven-Version gemäß der in Bambus korrigiert wurde
quelle
Für Sie GitHub Aktionen können Setup
actions/checkout@v2
mitref: master
quelle