我已经使用Ant构建了一个定制的Maven2插件。在定制Maven2插件成功完成之后,我想立即调用另一个maven插件,特别是Cargo Ant插件。但是,我不想将货物插件附加到另一个目标或阶段。有没有一种方法可以让它们连续运行,而不必编写批处理脚本?是否可以让Custom Ant插件调用Cargo插件?
发布于 2009-01-20 15:35:41
请看下面的讨论:Re: calling plugin in another plugin?根据Maven开发人员的说法,这不是插件应该工作的方式。
然而,有一个有趣的评论:
插件/Mojo应该是库的薄包装器。你会想要直接使用这个库。
Cargo不仅仅是一个Maven插件,它还有一个Java API和一个Ant task。所以你可能会:
从您的Ant mojo调用Cargo
发布于 2009-01-20 14:14:58
maven- Ant -plugin执行的Ant脚本并不真正意识到Maven本身;这个插件是为向后兼容定制Ant任务而设计的。我想不出一种干净的方法来做你想做的事情,尽管可能有某种黑客可以让你做到这一点。
还可以从Ant内部执行Maven的第二个实例,该实例仅运行Cargo目标,但在这种情况下,您可能会遇到锁定文件等问题。要做到这一点,只需在Ant脚本中使用标记,并使用适当的目标作为参数调用"mvn“可执行文件。
最干净的方法是简单地将Cargo目标绑定到构建的一个阶段,并在Ant完成后运行该阶段。我看不出这种方法有什么缺点--你并没有真正说明你想要避免它的任何具体原因。
发布于 2009-01-22 22:19:24
您可能会对下面两个maven感兴趣。
GMaven插件允许您使用groovy编写maven插件。这使您可以使用Ant Builder完全访问ant,这是在Groovy中编写ant脚本的一种非常简单的方法。然后,在这个Groovy mojo中,您可以使用mojo执行器调用任何maven Mojo。
我已经在几个自定义的maven插件中使用过它们,但我还没有找到一种更简单的方法来编写和组合mojos。
https://stackoverflow.com/questions/322835
复制相似问题