Como você chama outro alvo ant com parâmetros (-logger org.apache.tools.ant.listener.MailLogger) de outro script ant?
-
14-11-2019 - |
Pergunta
Eu tenho um script ant principal, que é usado para iniciar o script ant de vários projetos, em uma determinada sequência.
Para cada subprojeto, gostaria de enviar um e-mail avisando se a construção foi bem-sucedida ou não.
Entendo que posso usar o sinalizador -logger com org.apache.tools.ant.listener.MailLogger
para enviar um e-mail após a conclusão da construção.
No entanto, se eu tiver vários scripts para os quais desejo enviar um email, não sei como passar esse sinalizador -logger org.apache.tools.ant.listener.MailLogger
no chamado da formiga.
Precisamente, eu gostaria de passar o sinalizador do logger para esta chamada ant:
<ant antfile="build.xml" dir="subproject/build" target="build" />
Eu tentei usar param
e args
, mas não teve sucesso.
Solução
Boa pergunta.Pessoalmente, não consegui fazer funcionar com o ant
alvo.Parece que os sinalizadores não são suportados.
No entanto, esse hack funciona.
<exec executable="ant.bat">
<arg value="-logger"/>
<arg value="org.apache.tools.ant.listener.MailLogger"/>
<arg value="-f"/>
<arg value="other_build.xml"/>
</exec>
Dois problemas imediatos com esta abordagem:
- Não é independente de plataforma.
- A compilação relata sucesso quando a subconstrução falha (mesmo com o executivo
failonerror='true'
)