Altere as propriedades no pom.xml no tempo de execução com tarefas de formigas. É possível?
-
27-09-2019 - |
Pergunta
Eu tenho o seguinte caso de uso: meu aplicativo é iniciado com um script de formiga, que faz ao usuário várias perguntas sobre a configuração do projeto (configurações de banco de dados etc.). Essas configurações são armazenadas em um arquivo de propriedades.
Então eu quero executar o MAVEN de dentro do meu script de formigas por tarefas de formigas, que devem substituir as propriedades predefinidas no meu pom.xml pelas propriedades do arquivo de propriedades. Não quero mudar o pom.xml.
Existe uma maneira de fazer isso? Desde já, obrigado!
(Btw eu já tentei uma abordagem semelhante apenas com o Maven, o que parece ser impossível no momento)
Solução
Você pode redefinir as propriedades na linha de comando maven usando -D
E isso substituirá as propriedades no seu arquivo de projeto.
Por exemplo, em pom.xml
<properties>
<myProp>A</myProp>
</properties>
Em sua formig.xml, você pode invocar a linha de comando MVN como
mvn -DmyProp=B install
que definirá o MyProp como B no projeto. o Página de tarefas MVN ANT discute o uso de uma macro para invocar o comando maven. Isso pode ser facilmente personalizado para também passar nas propriedades adicionais.
Para fazer isso apenas em Maven, use o exec Plug -in para iniciar o Maven, passando os parâmetros de comando da mesma maneira que feito usando a tarefa Ant: Java.
Outras dicas
Você tentou substituir as propriedades em tempo real <copy>
tarefa de formiga?
Suponha que suas propriedades estejam em arquivo settings.properties
. Defina as propriedades a serem substituídas em seu pom.xml
com @
Em torno deles, você pode copiar o arquivo POM e substituir algumas propriedades ao mesmo tempo. Por exemplo:
<copy file='pom.xml' toFile='real-pom.xml'>
<filterset filtersfile='settings.properties' />
</copy>
Então você invoca o maven:
mvn -f real -pom.xml