lanzamiento de maven: error de carácter de versión preparada

Estoy tratando de hacer funcionar el complemento de lanzamiento maven, integrándolo con Perforce. Finalmente llegué a algún lugar ayer y logré ejecutar:

mvn release:prepare

y se le pidió que especificara muchas versiones y nuevas instantáneas de trabajo. Especifiqué la versión "0.1" (sin las comillas) como la versión de lanzamiento para todos los subproyectos y configuré la instantánea de trabajo en "1.0-SNAPSHOT" (igual que antes), ya que solo estaba probando el complemento y la integración. con Perforce, en lugar de intentar crear una versión. Sin embargo, después de ingresar la información, obtuve el siguiente error:

[ERROR] No se pudo ejecutar el objetivo org.apache.maven.plugins:maven-release-plugin:2.3.1:prepare (default-cli) en el proyecto myproject: Ejecución default-cli del objetivo org.apache.maven.plugins:maven -release-plugin:2.3.1:preparación fallida: Los datos "0.1" no son válidos para un contenido de carácter JDOM: 0x1b no es un carácter XML válido. -> [Ayuda 1]

(No estoy 100% seguro de que ese haya sido el error exacto que obtuve)

Pero ahora, cada vez que corro mvn release:prepare, recibo el mismo error (definitivamente el anterior), sin tener la oportunidad de volver a suministrar versiones o nombres de instantáneas de trabajo.

¿La versión "0.1" no es válida, o de alguna manera logré ingresar un carácter de escape ("0x1b") en uno de los valores, o hay algún problema en otro lugar?

Tampoco puedo encontrar dónde han ido los valores que ingresé. ¿Cómo podría configurarlos nuevamente o comenzar la preparación desde cero ingresando nuevos valores?

Gracias de antemano a cualquiera que eche un vistazo a esto.

EDIT:

Encontré una respuesta a la última parte, es decir, cómo restablecer los valores. si corro

mvn release:prepare -Dresume=false

Puedo ingresar los valores nuevamente.

(Y como @tom ya ha mencionado en una respuesta, puedo ejecutar mvn release:rollback para deshacerse de los que están allí. Sin embargo, esto no parece funcionar probablemente porque la preparación falló).

Esta vez ingresé los valores predeterminados, pero noté que mis problemas son mucho más profundos que eso, y probablemente no configuré la integración de Perforce correctamente. Obtengo esta salida INFO:

No se encontró la contraseña, procediendo sin ella.

Aunque lo he configurado como:

<server>
  <id>ip-of-perforce-server</id>
  <username>my-perforce-username</username>
  <password>***************</password>
</server>

en mi configuración.xml. Solo lo he visto configurado en ejemplos en el pom del proyecto, pero se mencionó que puede hacerlo en settings.xml y eso parece ser lo único que tiene sentido (como normalmente sería el pom in el SMC). Puedo evitar recibir este mensaje si especifico el nombre de usuario y la contraseña como env vars (-Dusername=xxx, etc.).

Pero también me sale el error:

CommandLineException Código de salida: 1 - Cliente 'PCNAME' desconocido - use el comando 'cliente' para crearlo.

donde PCNAME es el nombre de Windows de mi escritorio. Intenté ejecutar:

p4 client

y eso abre un archivo con el contenido:

Client: PCNAME
Owner:  my-perforce-username
Host:   PCNAME

Entonces, ¿por qué dice que es desconocido/necesita ser creado?

Para responderme a mí mismo, acabo de notar que después de correr p4 client decía Client PCNAME saved. lo cual supongo que es por lo que se mostró: P Entonces, seguir las instrucciones en el mensaje de error era todo lo que tenía que hacer.

Ahora solo tengo problemas:

Si ejecuto cygwin me sale el error Path 'D:\Server\pom.xml' is not under client's root '/cygdrive/d/Server' lo que supongo que tiene algo que ver con los conflictos entre las rutas de Unix y Windows.

Aparte de eso, no recibo ningún error antes de ingresar a las versiones donde obtengo lo siguiente:

java.io.IOException: The filename, directory name, or volume label syntax is incorrect
    at java.io.WinNTFileSystem.canonicalize0(Native Method)
    at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:396)
    at java.io.File.getCanonicalPath(File.java:559)
    at org.apache.maven.scm.provider.perforce.command.edit.PerforceEditCommand.createCommandLine(PerforceEditCommand.java:109)
    at org.apache.maven.scm.provider.perforce.command.edit.PerforceEditCommand.executeEditCommand(PerforceEditCommand.java:51)
    at org.apache.maven.scm.command.edit.AbstractEditCommand.executeCommand(AbstractEditCommand.java:40)
    at org.apache.maven.scm.command.AbstractCommand.execute(AbstractCommand.java:59)
    at org.apache.maven.scm.provider.perforce.PerforceScmProvider.edit(PerforceScmProvider.java:210)
    at org.apache.maven.scm.provider.AbstractScmProvider.edit(AbstractScmProvider.java:560)
    at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.writePom(AbstractRewritePomsPhase.java:631)
    at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.transformProject(AbstractRewritePomsPhase.java:231)
    at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.transform(AbstractRewritePomsPhase.java:125)
    at org.apache.maven.shared.release.phase.AbstractRewritePomsPhase.execute(AbstractRewritePomsPhase.java:110)
    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:291)
    at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:247)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    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:319)
    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:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    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)
[ERROR] CommandLineException Exit code: 1 - Usage: add/edit/delete [-c changelist#] [ -d -f -k -n -v ] [-t type] files...
Missing/wrong number of arguments.

Command line was:p4 -d D:\Server -p perforce-ip-and-port -u my-username -P my-password edit
org.codehaus.plexus.util.cli.CommandLineException: Exit code: 1 - Usage: add/edit/delete [-c changelist#] [ -d -f -k -n -v ] [-t type] files...
Missing/wrong number of arguments.

y el error final de Maven Build Failure:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.1:prepare (default-cli) on project project-name: Error writing POM: D:\Server\pom.xml (Access is denied) -> [Help 1]

(Tenga en cuenta que esto también sucede cuando se ejecuta el comando en la línea de comando, donde el error sobre el pom no está en la vista del cliente). no Aparecer)

Lo que parece ser mi último problema restante ... llegar allí :)

preguntado el 12 de junio de 12 a las 10:06

Puedes borrar release.properties y vuelva a intentarlo: este archivo almacena los valores que ha ingresado. -

Corrí mvn release:prepare -Dusername=MyName -Dpassword=***** y de esta manera no recibí el mensaje "No se encontró la contraseña", pero sí el ERROR "Cliente X desconocido"... -

Me acabo de dar cuenta de que el valor "PCNAME" anterior también es el valor "Host" si voy a Connection > Edit Current Workspace... en p4v y mira debajo del Advanced pestaña. ¿Debería ser realmente la IP (o el nombre de host) del servidor forzado? Parece (al cambiar esto) que este es el host desde donde el cliente puede conectarse al espacio de trabajo. ¿Es posible que esté relacionado con el error? -

Creé una nueva pregunta para los problemas que encontré después de resolver los iniciales aquí: stackoverflow.com/questions/10999403/… -

1 Respuestas

0.1 es definitivamente una versión legal. Los valores que ingresó han ido a archivos al mismo nivel que su pom.xml archivo (no recuerdo el nombre porque desaparecen después mvn release:perform). Para borrarlos puedes usar mvn release:rollback

Además, cuando use proyectos de varios módulos, asegúrese de usar el indicador 'autoVersionSubModules':

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>${maven.plugin.release.version}</version>
    <configuration>
            <autoVersionSubmodules>true</autoVersionSubmodules>
    </configuration>
</plugin>

Esto también cambiará la versión de sus módulos.

EDITAR: esta respuesta solo responde la parte sobre el complemento de lanzamiento de Maven. No las otras partes de la pregunta. El interrogador ha decidido hacer nuevas preguntas sobre las otras partes de la pregunta.

Respondido el 12 de junio de 12 a las 17:06

Agregué algunas actualizaciones a mi pregunta después de su respuesta (y descubrí cómo deshacerme de la entrada rota). Como nota al margen, funcionó bien cuando más tarde usé "0.1" nuevamente, por lo que debo haber logrado obtener un carácter de escape allí la primera vez. - svend hansen

Dado que este ha respondido bastante a mi pregunta original, lo aceptaré y haré una nueva pregunta con mi problema actual (este ha crecido demasiado de todos modos) :) - svend hansen

Tienes razón en eso. Una pregunta por 'hilo' facilita que otras personas se identifiquen con su problema y quizás encuentren una solución. Gracias. - tom

Por cierto, descubrí cuál era el problema y lo "arreglé". mira la otra pregunta aquí si quieres leer al respecto. - svend hansen

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.