Maven从一个模块创建了许多罐子

时间:2014-07-03 11:16:16

标签: java maven jar packaging generated

我有一个maven(多模块)项目,其中包含IAction之类的内容。在这个项目中,我实施了大约50个不同操作的实现。每个操作都包含MyAction.javaMyAction.properties文件。

我使用Java的SPI(java.util.spi)在运行时加载所有实现。这一切都很好,但现在我想将每个Action打包到一个罐子里,这样我最终得到50个罐子。

实现这一目标的好方法是什么?我并不是真的想为每个动作创建一个子模块,因为这需要大量的维护。

1 个答案:

答案 0 :(得分:1)

您可以使用Maven assembly plugin来创建用于构建模块的其他工件。但是,请注意,一旦创建了这些工件,就需要将这些工件添加到部署队列中,以防您不仅要构建这些工件。这可以通过例如使用build-helper-maven-plugin来实现。

但是,对于超过50个元素的迭代,您可能需要考虑编写自己的专用插件。有一些额外的插件允许迭代另一个插件,但这会炸毁你的POM。因此,如果构建非常具体,那么您可能会考虑编写专门用于此任务的单个插件。你可以用纯Java而不是XML来做到这一点,它并不像听起来那么难。有文档,Maven有默认的API。您可以查看指定插件的源代码,了解如何满足您的要求。