Altere as propriedades no pom.xml no tempo de execução com tarefas de formigas. É possível?

StackOverflow https://stackoverflow.com/questions/2848742

  •  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)

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top