ajuda ciclo de vida Maven2
-
11-07-2019 - |
Pergunta
Eu construí um Maven2 plug-in personalizado usando Ant. Gostaria de chamar plug-in outro maven, em particular, o plug-in de carga Maven2 imediatamente após o plug-in personalizado Ant concluir com êxito. No entanto, eu não deseja anexar o plug-in de carga para outro objetivo ou fase. Existe uma maneira de tê-los executado consecutivamente sem ter que escrever um script em lotes? Existe longe de ter o plug-in chamada personalizada Ant para o plug-in de carga?
Solução
Veja essa discussão: Re:?. chamando o plugin no outro plugin acordo com os desenvolvedores do Maven, este não é o caminho plugins devem funcionar
No entanto, não é este comentário interessante:
Plugins / Mojos deve ser invólucros finas em torno de uma biblioteca. Você gostaria de usar a biblioteca diretamente.
Carga não só é um plugin Maven, ele também tem uma API Java e uma tarefa Ant . Então você poderia provavelmente:
-
chamar a tarefa de carga Ant do seu Ant mojo (eu acho que você só vai precisar do JARs de carga na classpath do seu plugin);
-
reescrever seu mojo Ant em Java, e invocar a API de Carga (você iria querer olhar para as fontes do plugin de carga).
Outras dicas
O script Ant que as executa plugin Maven-ant-não é realmente conscientes do Maven como tal; este plugin é projetado para compatibilidade com tarefas Ant personalizado. Eu não posso pensar de uma forma limpa de fazer o que quer que possa haver algum tipo de truque que lhe permite fazê-lo.
Também deve ser possível executar uma segunda instância do Maven de dentro Ant, que funciona puramente o objetivo de carga, mas, nesse caso, você pode encontrar problemas com arquivos bloqueados e afins. A maneira de fazer isso seria apenas para usar um tag em seu script Ant e chamar o "mvn" executável com as metas adequadas como argumentos.
A maneira mais limpa é simplesmente ligam o objetivo de carga a uma fase da construção, e ter que correr atrás Ant está terminado. Eu não vejo nenhuma desvantagem para essa abordagem -. Você realmente não declarou quaisquer razões específicas pelas quais você quer evitá-lo
Você pode estar interessado nos dois seguintes Maven
O plugin GMaven permite escrever plugins Maven usando Groovy. Isto dá-lhe pleno acesso a formiga usando o Ant Builder , é muito maneira fácil de escrever scripts ant em Groovy. Então, neste Groovy mojo você poderia chamar qualquer maven mojo usando o Mojo Executor.
Eu usei aqueles em vários costume maven plugin e eu não encontrei uma maneira mais fácil de escrever e combinar Mojos.