Tengo un POM de maven que me gustaría utilizar como plantilla, produciendo artefactos con diferentes nombres según los argumentos que le transmita. Pero no puedo encontrar la manera de especificar el artifactId en tiempo de ejecución.¿puedo especificar un proyecto maven.artifactId en tiempo de ejecución?
Si parametrizar el elemento <artifactId>
así:
<artifact>foo-${bar}</artifact>
experto se queja:
[ADVERTENCIA] 'artifactId' contiene una expresión, pero debe ser una constante.
Si dejo a cabo <artifactId>
en el POM y tratar de especificar en la línea de comandos con
mvn -Dproject.artifactId=foo ...
experto se queja:
[ERROR] 'artifactId' no se encuentra.
¿Hay otro truco que podría usar para lograr esto, además de recurrir a generar el archivo POM sobre la marcha desde una plantilla? [Hmm, tal vez podría hacer eso usando el filtro de recursos de maven ...]
Gracias, esto parece una buena opción. Parece que todas las preguntas de maven tienen una respuesta del formulario "hay un complemento para eso" :-). Sospecho que mi idea de usar el filtro maven habría terminado siendo una especie de arquetipo de un pobre, por lo que tiene sentido ir con algo probado en lugar de reinventar la rueda. –
Estoy de acuerdo en que los arquetipos son el camino a seguir, pero en realidad no responde la pregunta. Incluso si es una práctica totalmente mala, ¿es posible configurar el artifactId en tiempo de ejecución? – dokaspar