我正在开发一个Maven插件,由3个mojos继承AbstractMojo
组成。
长话短说,这3个mojos习惯于:
以前,我的第二个mojo继承了第一个,第三个继承了第二个,他们都在super.execute()
方法中调用execute()
,以便它们可以相互级联。
我正在重写插件以使其更清晰,设计更好,因此我删除了继承并希望依赖Maven本机生命周期,将3个mojos绑定到compile
,package
和{{ 1}}阶段。
我面临的问题是我无法想出一个干净的方法来传递第二个mojo我在第一个mojo执行期间提取的数据(如文件扩展名,如果文件正确编译,包路径等) )。 Maven插件API中是否有可用的临时存储或缓存系统?
答案 0 :(得分:4)
由于没有直接的方式在Maven mojos之间共享数据,我选择编写我需要传递到CSV文件中的下一个Mojo的数据(XML,YAML或任何其他格式也可以完成这项工作)。
通过执行使用存储在内存中的一些缓存或上下文的优点是,您可以执行一个目标,将其结果保存在文件系统中,然后在以后执行以下目标。