2011-02-20 24 views
6

Quiero lanzar una nueva versión de mi proyecto usando Maven-Release-Plugin.Maven + Mercurial: Error al ejecutar la etiqueta de comando

me sale el siguiente error, sin embargo:

[INFO] Tagging release with the label softsmithy-lib-v0.1...                      
[INFO] EXECUTING: /bin/sh -c cd /var/lib/hudson/jobs/SoftSmithy-Utility-Library-Release && hg tag --message '[maven-release-plugin] copy for tag softsmithy-lib-v0.1' softsmithy-lib-v0.1                           
[ERROR]                                   
EXECUTION FAILED                                 
    Execution of cmd : tag failed with exit code: 255.                        
    Working directory was:                               
    /var/lib/hudson/jobs/SoftSmithy-Utility-Library-Release                      
    Your Hg installation seems to be valid and complete.                       
    Hg version: 1.7.5 (OK)                              


[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR                
[INFO] ------------------------------------------------------------------------ 
[INFO] An error is occurred in the tag process: Exception while executing SCM command. 

Error while executing command tag --message [maven-release-plugin] copy for tag softsmithy-lib-v0.1 softsmithy-lib-v0.1 
[INFO] ------------------------------------------------------------------------           
[INFO] Trace                            
org.apache.maven.lifecycle.LifecycleExecutionException: An error is occurred in the tag process: Exception while executing SCM command. 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)       
     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:284)     
     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: An error is occurred in the tag process: Exception while executing SCM command. 
     at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:215)         
     at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:181)          
     at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)           
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)        
     ... 17 more                              
Caused by: org.apache.maven.shared.release.ReleaseExecutionException: An error is occurred in the tag process: Exception while executing SCM command.                                    
     at org.apache.maven.shared.release.phase.ScmTagPhase.execute(ScmTagPhase.java:113)              
     at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:203)           
     at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:140)           
     at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:103)           
     at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:211)          
     ... 20 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.hg.HgScmProvider.tag(HgScmProvider.java:239)                
     at org.apache.maven.scm.provider.AbstractScmProvider.tag(AbstractScmProvider.java:706)             
     at org.apache.maven.shared.release.phase.ScmTagPhase.execute(ScmTagPhase.java:109)              
     ... 24 more                                
Caused by: org.apache.maven.scm.ScmException: Error while executing command tag --message [maven-release-plugin] copy for tag softsmithy-lib-v0.1 softsmithy-lib-v0.1                                
     at org.apache.maven.scm.provider.hg.command.tag.HgTagCommand.executeTagCommand(HgTagCommand.java:105)          
     at org.apache.maven.scm.command.tag.AbstractTagCommand.executeCommand(AbstractTagCommand.java:81)           
     at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:59)               
     ... 27 more   

Traté de correr

/bin/sh -c cd /var/lib/hudson/jobs/SoftSmithy-Utility-Library-Release && hg tag --message '[maven-release-plugin] copy for tag softsmithy-lib-v0.1' softsmithy-lib-v0.1 

y funcionó bien!

¿Alguna idea de lo que va mal?

PD: Me señaló que en el siguiente sitio: http://maven.apache.org/scm/matrix.html

se menciona que no se admite el comando de Mercurial etiqueta, pero parece que para ejecutar el comando (y luego falla de alguna manera). ¿Cómo puedo usar el complemento de lanzamiento de Maven con Mercurial?

PPS: Esto solo parece suceder para proyectos de varios módulos. El proyecto Single POM funciona bien. Intenté -DpreparationGoals = "clean install" pero no ayudó.

Respuesta

6

fin encontré la solución:

El padre requerido POM

<groupId>org.sonatype.oss</groupId> 
<artifactId>oss-parent</artifactId> 
<version>6</version> 

utiliza la versión Release Maven Plugin 2.0

Desafortunadamente, hay un problema con los proyectos de varios módulos que utilizan Mercurial. El problema desaparece, cuando se utiliza la versión 2.1

Solución: anule la versión en el proyecto POM/POM principal del proyecto.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
    <mavenExecutorId>forked-path</mavenExecutorId> 
    <useReleaseProfile>false</useReleaseProfile> 
    <arguments>-Psonatype-oss-release</arguments> 
    </configuration> 
</plugin> 

I presentado un problema aquí: https://issues.sonatype.org/browse/OSSRH-1388

+1

buenos comentarios. +1 – VonC

+0

Presenté otro problema similar (use la versión 2.2.2 en lugar de 2.1) aquí: https://issues.sonatype.org/browse/OSSRH-3975 – Puce

+0

Cómo solucionar esto si no estoy usando maven-release- complemento para hacer lanzamientos. Estoy usando versions-maven-plugin (versions: set -DnewVersion = x.x.x) para configurar la versión y funciona bien y usando maven-scm-plugin (scm: checkin y scm: tag). scm-checkin funcionó, pero la etiqueta scm falló con un mensaje de error similar: La ejecución de la etiqueta cmd: falló con el código de salida: 255. –

0

Si nos fijamos en el archivo de origen para HgTagCommand.java, que incluye unos pocos lugares donde se puso en marcha este tipo de excepción (es decir, "Error while executing command"):

el relativo a tag [message] es:

ScmResult result = HgUtils.execute(branchConsumer, getLogger(), workingDir, branchCmd); 
HgScmProviderRepository repository = (HgScmProviderRepository) scmProviderRepository; 

if (!result.isSuccess()) 
{ 
    throw new ScmException("Error while executing command " + joinCmd(branchCmd)); 
} 

Y eso no parece compatible con un proyecto de varios módulos, donde puede tener múltiples repositorios Mercurial.

+0

Tengo solo un repositorio para esta fuente base. El resto se resuelve a través del repositorio de Maven Central. – Puce

0

que tenían el mismo problema, que era debido a maven release hace 3 commit (al menos en mercurial):

  • preparar el lanzamiento
  • Marca la etiqueta de la versión
  • Prepárate para la siguiente iteración de desarrollo

Y a veces, si la configuración del plugin de proyecto o versión no está configurada correctamente, el release se atasca en la primera confirmación.El problema es que a veces ya actualizó la versión en su servidor de sonatype, por lo que debe eliminar esta versión falsa del servidor sonatype, configurar bien el proyecto de su padre pom.xml, compilar el proyecto y volver a lanzarlo. Esta es la forma en que se veía, mientras que borrar mi falsa liberación 1.0.0-alpha5 en el proyecto bridje-parent:

enter image description here

también borrar la falsa release situado en sus submódulos. Recuerde realizar cambios en su servidor scm antes de hacer un release. Vote si funcionó para usted, me ha pasado muy pocas veces.

Cuestiones relacionadas