¿Cómo se instala el artefacto Maven RPM generado en el repositorio m2 local con el nombre de rpm correcto?

Entonces puedo usar el complemento maven RPM con éxito para generar el artefacto RPM como se esperaba.

Utilizo el objetivo de RPM adjunto en un pom.xml (empaquetado como un pom) para que el complemento RPM instale el artefacto en el repositorio m2 local (ya que está vinculado a la fase del paquete).

Problema: el nombre generado por RPM es excelente y es el siguiente: code-module-1.0.3-SNAPSHOT20120727095507.amd64.rpm

Sin embargo, cuando maven instala esto en mi repositorio local, termino con:

código-módulo-rpm-1.0.3-SNAPSHOT-rpm.rpm

Pierdo el nombre completo, la parte de la arquitectura del RPM y, en cambio, Maven está agregando rpm al final del nombre antes de la extensión .rpm (el clasificador que no he definido) y está usando mi id de artefacto pom como el nombre de rpm en su lugar del propio nombre rpm.

Intenté usar el complemento build-helper para apuntar al RPM generado en el directorio de destino, pero esto no funciona porque el nombre de rpm se genera dinámicamente y el complemento build-helper solo acepta el nombre completo del archivo, sin comodines, etc.

No quiero cambiar el nombre final del artefacto ya que estaría rompiendo la convención maven.

Aquí está la salida de maven:

[INFO] Installing /home/xzcx/Development/repository/svn/source/parent-project    
/code-module-rpm/target/rpm/code-module/RPMS/amd64/code-module-1.0.3-
SNAPSHOT20120727145507.amd64.rpm to  
/home/xzcx/.m2/repository/com/xpackage/ypackage/codepackage/code-module-rpm/1.0.3-
SNAPSHOT/code-module-rpm-1.0.3-SNAPSHOT-rpm.rpm

¿Alguna idea, por favor?

Actualización: observé que el sitio del complemento RPM establece que usar el objetivo adjunto: RPM le permitirá crear múltiples RPM, por ejemplo, con diferentes arquitecturas, etc., pero según lo anterior, la única forma en que esto funcionaría sería usar clasificadores arch bit del nombre RPM no se transfiere a la instalación en el repositorio local.

preguntado el 27 de julio de 12 a las 16:07

¿Puedes mostrar el pom completo de tu uso del complemento rpm-maven? -

sí, estoy en el proceso de actualizar el pom -

2 Respuestas

El campo clasificador es una pieza importante porque, a menudo, la extensión del archivo no es suficiente para diferenciar los artefactos del proyecto (por ejemplo, foobar-1.0.jar, foobar-1.0-javadoc.jar, foobar-1.0-sources.jar todos tienen extensión de archivo jar).

Además del artefacto principal, puede haber archivos adicionales que se adjuntan al proyecto Maven. Dicho archivo adjunto puede ser reconocido y accedido por su clasificador.

http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploying-with-classifiers.html

Todos los artefactos del proyecto están asociados entre sí por el project.artifactId + project.version y en consecuencia se nombran <artifactId>-<version>-<classifier>.<ext>.

http://maven.apache.org/plugins/maven-install-plugin/examples/installing-secondary-artifacts.html

Respondido el 05 de diciembre de 14 a las 14:12

Tengo el mismo problema, pero lo principal que quiero es eliminar -rpm de code-module-rpm-1.0.3-SNAPSHOT-rpm.rpm porque siento que es redundante. Debería haberme llamado así: code-module-rpm-1.0.3-SNAPSHOT.rpm (como mínimo)

Respondido el 11 de junio de 14 a las 20:06

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