Obtengo el siguiente resultado de error mientras ejecuto el paso de preparación del complemento de lanzamiento de Maven, es decir, mvn release:prepare --batch-mode -DreleaseVersion=1.1.2 -DdevelopmentVersion=1.2.0-SNAPSHOT -Dtag=v1.1.2 -X
desde un plan de Atlassian Bamboo. Sin embargo, hacer lo mismo en la línea de comandos funciona bien. La pila de errores completa está a continuación.
¿Alguna idea de cómo se puede resolver esto?
[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
ACTUALIZAR:
Hacerlo git ls-remote .
en un clon de espacio de trabajo local produce:
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^{}
Hacer git ls-remote .
en el clon de Bamboo produce:
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^{}
y esto es muy extraño, ¿por qué la salida del clon de desarrollo local es tan diferente de la de Bamboo?
HEAD
referencia ya no se refiere a un nombre de rama, sino a SHA1. Puede simular este localmente mediante la ejecucióngit checkout SHA1
o de agregar^{}
al nombre de un ref:git checkout HEAD^{}
. Parece que el complemento Bamboo git intenta verificar la rama, si es posible. Entonces parece que tienes una carrera: antes de que se ejecute la compilación, han aparecido cosas nuevas. Aún no tengo claro cómo solucionarlo.Respuestas:
Me encontré con el mismo error en Jenkins en combinación con el complemento de lanzamiento de maven, lo solucionamos yendo a Comportamientos adicionales, consulte la rama local específica e ingrese 'maestro'
Me doy cuenta de que esto no es una solución, pero podría darle alguna dirección sobre dónde buscar.
fuente
git symbolic-ref
comando falla. AñadiendoCheck out to specific local branch
arreglamos esto.**
lugar demaster
hará coincidir el nombre de la sucursal local con la remota.**
, entonces el nombre de la rama se calcula desde la rama remota sin el origen . "Para Jenkins y GIT, agregue el comportamiento adicional
check out to specific local branch
y useWorkspace Cleanup Plugin
para limpiar su espacio de trabajo al comienzo de su trabajo de CI.fuente
-Darguments="-Dmaven.deploy.skip=true"
.El problema en Atlassian Bamboo se resolvió desmarcando la configuración predeterminada
Use shallow clones
con descripciónFetches the shallowest commit history possible. Do not use if your build depends on full repository history
. Esta casilla de verificación se encuentra en Configuración del plan -> pestaña Repositorios -> Git -> Opciones avanzadasDespués de esto, todos los lanzamientos funcionan bien.
fuente
Desmarcar
Use shallow clones
no fue suficiente en mi caso (estoy usando Bamboo 5.7.2). Necesitaba habilitar tambiénForce Clean Build
en la tarea de verificación de código fuente. HabilitarUse shallow clones
funcionaría para la siguiente ejecución del trabajo, pero todas las ejecuciones posteriores darían como resultado el mismo error.fuente
He visto este problema en Bamboo utilizado con el complemento Maven Release. Lo solucioné habilitando la opción 'Forzar construcción limpia' en la tarea 'Comprobación de origen'. Bamboo dice que esto podría hacer que la construcción sea más lenta, pero funciona y no vi ningún aumento de tiempo significativo.
fuente
Estoy usando un proyecto de equipo de Jenkins con una configuración de proyecto de múltiples ramas.
Anteriormente usé el
checkout scm
comando.Ahora estoy usando el siguiente código:
fuente
new
con**
, lo que hace que el nombre de la sucursal local sea el mismo que el de la remota.lo que funcionó para mí fue llamar "git checkout -f master" antes de llamar a "mvn release"
fuente
Para nosotros, el problema fue con la versión de maven especificada en el archivo pom. Se corrigió la versión de maven especificada en el archivo pom de acuerdo con la de bambú solucionó el problema
fuente
Para las acciones de GitHub que puede configurar
actions/checkout@v2
conref: master
fuente