2010-03-25 7 views
15

Tengo un repositorio que contiene artefactos de instantáneas con marcas de tiempo.Maven: ¿Cómo crear el ensamblaje con artefactos de instantáneas sin el nombre de archivo de marcas de tiempo?

Quiero crear un ensamblaje que contenga las dependencias. Esto funciona bien Pero los nombres de los artefactos contienen la marca de tiempo. Entonces me pregunto cómo eliminar la marca de tiempo del nombre del archivo solo para el ensamblaje.

He utilizado este dependencySet:

<outputFileNameMapping>${artifact.artifactId}-${artifact.version}.${artifact.extension}</outputFileNameMapping> 

Pero costuras versión para contener ya la marca de tiempo. Entonces, ¿hay alguna posibilidad de obtener un 1.1.1-SNAPSHOT en lugar de 1.1.1-20100323.071348-182?

Estoy usando la versión 2.2-beta-4 de maven-assembly-plugin.

+0

¿Qué versiones de maven y del complemento de ensamblaje está utilizando? –

+0

Estoy usando la versión 2.2-beta-4 de maven-assembly-plugin. (He agregado esta información a mi pregunta) – marabol

+0

La respuesta aceptada funciona perfectamente con Maven 3 y la versión 2.2.1 del plugin de ensamblaje. –

Respuesta

24

Podría intentar lo siguiente para el outputFileNameMapping:

${artifactId}-${baseVersion}.${extension} 

De acuerdo con temas como MASSEMBLY-67, MASSEMBLY-91:

Usando ${baseVersion} para los casos en los que desee conservar la denominación -SNAPSHOT, el plug-in retiene la capacidad de usar ${version} para la denominación timestamp-buildnumber, que es útil para describir la versión exacta de la biblioteca incluida en el ensamblaje.

Actualización: Después de la retroalimentación de la OP, la sintaxis exacta es (no era totalmente seguro de esto):

${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension} 
+0

Muchas gracias. Sólo un pequeño cambio y funciona bien: \t \t \t $ {} artifact.artifactId - $ {} $ {artifact.baseVersion artifact.extension} marabol

+0

@marabol de qué.. Me alegro de que funcione. No estaba totalmente seguro de la sintaxis de las propiedades, pero pensé que lo averiguaría :) –

+0

También puede agregar el clasificador: $ {artifact.artifactId} - $ {artifact.baseVersion} $ {dashClassifier?}. $ { artefacto.extensión} – Rob

2

que se enfrentaron a un problema similar cuando se trata de construir un paquete con el plugin de ensamblaje que contenía una carpeta con el número de versión (estoy empaquetando WSDL y XSD).

La solución que he encontrado es bastante simple, puse el número de versión real de una propiedad (por ejemplo, 1,0), lo que hace que esté disponible en el archivo bundle.xml para el plugin de montaje, y el set de la versión pom a:

De esta forma, el contenido de mi paquete no está influenciado por el marcador SNAPSHOT, en particular, no se modifica al hacer la publicación.

Cuestiones relacionadas