Ho un POM esperto che vorrei usare come modello, producendo artefatti con nomi diversi a seconda degli argomenti che gli ho passato. Ma non riesco a capire come specificare l'artefatto in runtime.posso specificare un maven project.artifactId in fase di runtime?
Se parametrizzare l'elemento <artifactId>
in questo modo:
<artifact>foo-${bar}</artifact>
Maven si lamenta:
[ATTENZIONE] 'artifactId' contiene un'espressione, ma dovrebbe essere una costante.
Se lascio fuori <artifactId>
nel POM e tenta di specificare sulla riga di comando con
mvn -Dproject.artifactId=foo ...
Maven si lamenta:
[ERRORE] 'artifactId' manca.
C'è un altro trucco che potrei usare per realizzare questo, oltre a ricorrere alla generazione del file POM al volo da un modello? [Hmm, forse potrei farlo usando il filtraggio delle risorse di Maven ...]
Grazie, sembra una buona misura. Sembra che ogni domanda di esperti abbia una risposta del modulo "c'è un plugin per questo" :-). Sospetto che la mia idea di usare il filtraggio di maven sarebbe diventata un archetipo di un povero uomo, quindi ha senso seguire qualcosa di provato invece di reinventare la ruota. –
Sono d'accordo che gli archetipi sono la strada da percorrere, ma in realtà non risponde alla domanda. Anche se è una pratica totalmente negativa, è possibile impostare l'oggetto artefatto in fase di runtime? – dokaspar