Estoy intentando hacer un lanzamiento a través del complemento de lanzamiento de Maven y tengo problemas con la configuración de SCM. Estoy usando Eclipse con m2eclipse instalado. Usamos Mercurial y en mi máquina (Win7) tengo instalado TortoiseHg. Tengo un proyecto de prueba que crea un jar. Hacemos uso de un super pom para nuestros proyectos, por lo que el proyecto de prueba pom también lo hace. He creado este pom en el súper:Haciendo lanzamientos con Maven/Hudson/Mercurial
<build>
<plugins>
....
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin
<version>1.6</version>
<configuration>
<connectionType>connection</connectionType>
</configuration>
</plugin>
</plugins>
</build>
Mi prueba pom proyecto es el siguiente:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>TestJar
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>my.group</groupId>
<artifactId>super-pom</artifactId>
<version>1.0</version>
</parent>
<scm>
<connection>
scm:hg:ssh://our.scm.server:22//path/to/TestJarProject
</connection>
<developerConnection>
scm:hg:ssh://our.scm.server:22//path/to/TestJarProject
</developerConnection>
</scm>
</project>
Nota que SSH a nuestro servidor SMC. Sospecho que algunos de los problemas que estoy enfrentando se relacionan con esto. Solo he podido encontrar ejemplos que usan http.
En mi settings.xml, que añade esto:
<servers>
...
<server>
<id>our.scm.server</id>
<username>username</username>
<password>password</password>
</server>
</servers>
Cuando corro liberación: liberación de preparar: realizar, un cuadro de diálogo aparece TortoisePlink me pida la contraseña. El cuadro de diálogo pregunta "contraseña de @ our.scm.server".
Parece que no está utilizando el nombre de usuario o la contraseña del archivo settings.xml, que es lo que esperaba al agregarle el elemento del servidor. ¿Deberia ser? También he intentado añadir mi nombre de usuario a la URL de conexión:
<connection>
scm:hg:ssh://[email protected]:22//path/to/TestJarProject
</connection>
pero todavía incitan para la contraseña de un nombre de usuario vacío.
PREGUNTA UNO
Alguien ha utilizado con éxito ssh para conectarse a Mercurial mientras se hace Maven lanzamientos?
Desde que en última instancia, quiero hacer las compilaciones en Hudson, puedo tener un trabajo de Hudson para hacer el lanzamiento pero se produce este error:
[INFO] o.h.m.e.h.MavenExecutionResultHandler - Build failed with exception(s)
[INFO] o.h.m.e.h.MavenExecutionResultHandler - [1] org.apache.maven.lifecycle.\
LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:\
maven-release-plugin:2.0:prepare (default-cli) on project TestJar: Cannot \
prepare the release because you have local modifications :
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/_maven.repositories:unknown]
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/nms-super-pom-1.0.pom:unknown]
[.maven/repo/ca/shaw/eng/nms/nms-super-pom/1.0/nms-super-pom-1.0.pom.sha1:unknown]
... many, many more lines of this nature .....
PREGUNTA DOS
qué modificaciones locales se encuentra Maven?
Como el proyecto se extrae del repositorio, el único cambio que puedo pensar es en la actualización del archivo pom (eliminando SNAPSHOT de la versión). Pero Maven no debería estar quejándose de esto ya que hizo el cambio en sí, ¿no?
ACTUALIZACIÓN
De acuerdo con la sugerencia de khmarbaise, he añadido esto a mi POM padres:
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
</plugin>
</plugins>
</pluginManagement>
Primero haz una sección de plugin Management en tu padre y configura una versión más nueva del maven-release-plugin porque estás usando 2.0 que está un poco desactualizado ... ¿Qué versión de Maven usas? Hudson una actualizada? ¿Utiliza el complemento de lanzamiento de Hudson? – khmarbaise
Estamos utilizando Hudson 2.1.2 y Maven 3 (incluido con Hudson) – sdoca
¿Ha comprobado primero si puede hacer un lanzamiento en línea de comandos sin Hudson? (Se agregó la sección de pluginManagement?) – khmarbaise