2011-09-26 14 views
14

He leído algunas preguntas aquí sobre cómo configurar una propiedad (la mayoría de ellas habla sobre el número de versión de una aplicación) desde un plugin maven. Parece que no hay una manera fácil de hacerlo y la mejor solución que encontré es tener un archivo filter.properties que se actualiza desde el complemento y que utiliza el archivo pom principal para filtrar los recursos deseados.Establecer propiedad maven desde el complemento

he intentado otra solución después de leer esto de la documentación de Maven (Maven filter plugin):

Las variables pueden ser incluidos en sus recursos. Estas variables, denotadas como por los delimitadores $ {...}, pueden provenir de las propiedades del sistema, sus propiedades de proyecto , desde los recursos de su filtro y desde la línea de comando .

Me pareció interesante que la variable se puede leer desde las propiedades del sistema. Por lo tanto, he modificado mi plugin para establecer una propiedad de sistema como este:

System.setProperty("currentVersion", appCurrentVersion); 

Sin embargo, no parece recursos filtrados para leer este valor. ¿Alguien podría decirme qué hay de malo en este enfoque?

ACTUALIZACIÓN: Estoy ejecutando mi complemento en la fase de validación .

Muchas gracias.

Respuesta

18

no la coloque como sistema de propiedad, la puso como propiedad Proyecto Maven

// inject the project 
/** @parameter default-value="${project}" */ 
private org.apache.maven.project.MavenProject project; 

// and in execute(), use it: 
project.getProperties().setProperty("currentVersion", appCurrentVersion); 

Ver:

+0

¡Perfecto! Muchas gracias, Sean. – PaquitoSoft

3

Maven establece las propiedades en initialize phase. Supongo que en esa fase Maven carga las propiedades del sistema. Y después de eso, maven no carga las propiedades del sistema nuevamente. Si intenta agregar una propiedad del sistema después de esta fase, entonces no se carga.

Intenta ejecutar el complemento en validate phase.

+0

ya estoy ejecutando el complemento en la fase de validación Lo siento, no lo mencioné antes. – PaquitoSoft

Cuestiones relacionadas