Estoy intentando lanzar un proyecto maven de múltiples módulos que usa git como SCM, y uno de los primeros problemas que he encontrado es la forma en que el complemento maven libera the release.properties scm.url. Mi padre POM es como la siguiente:Lanzamiento de un proyecto maven de varios módulos con Git
<packaging>pom</packaging>
<groupId>org.project</groupId>
<artifactId>project-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scm>
<connection>scm:git:git://github.com/username/project.git</connection>
<developerConnection>scm:git:[email protected]:username/project.git</developerConnection>
<url>http://github.com/username/project</url>
</scm>
<modules>
<module>api</module>
<module>spi</module>
</modules>
Y las POM módulo son sencillos:
<parent>
<groupId>org.project</groupId>
<artifactId>project-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>api</artifactId>
<version>0.2.2</version>
Mi objetivo es ser capaz de liberar los módulos individuales, ya que cada uno tiene diferentes versiones y no hacer quiero incrementar todas las versiones juntas cada vez que hago un lanzamiento.
Cuando cambio en el directorio api
y hacer un mvn release:clean release:prepare
me encontré con el siguiente resultado:
[INFO] Executing: cmd.exe /X /C "git push [email protected]:username/project.git/api master:master"
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Unable to commit files
Provider message:
The git-push command failed.
Command output:
ERROR: Repository not found.
Parece que el plugin liberación experto crea la scm.url añadiendo el nombre del módulo a la developerConnection
, que termina no siendo un repositorio válido en github. No estoy seguro de cuál es la forma correcta de configurar esto. Puede ser que Maven + git + liberando un módulo hijo individual simplemente no funcione? Cualquier entrada es apreciada.
Parece que los lanzamientos de proyectos desde el POM de nivel superior en lugar de liberarlos de los módulos individuales como lo estoy tratando de hacer. El problema que tengo aparece cuando intento liberar desde el directorio de uno de los módulos. Es importante para mí poder lanzar módulos individuales ya que las versiones de los módulos son diferentes y no quiero incrementar todas las versiones de los módulos al mismo tiempo. –
Nunca he visto a nadie hacer eso. – bmargulies
Gracias por la información. ¿Tiene enlaces a cualquiera de los hilos en la lista de desarrolladores maven donde esto ha sido discutido? –