我有一个 Maven(多模块)项目,其中包含类似IAction
. 在这个项目中,我实施了大约 50 个不同动作的实施。每个动作由一个MyAction.java
和一个MyAction.properties
文件组成。
我使用 Java 的 SPI (java.util.spi) 在运行时加载所有实现。这一切都很好,但现在我想将每个打包Action
成一个 jar,这样我最终得到 50 个 jar。
什么是实现这一目标的好方法?我真的不想为每个操作创建一个子模块,因为这需要大量维护。
您可以使用 Maven程序集插件来创建用于构建模块的其他工件。但是,请注意,一旦创建了这些工件,就需要将它们添加到部署队列中,以防您不仅要构建这些工件。这可以通过例如使用build-helper-maven-plugin
.
但是,对于超过 50 个元素的迭代,您可能需要考虑编写自己的专用插件。还有其他插件允许在另一个插件上进行迭代,但这会炸毁你的 POM。如果构建因此非常具体,那么您可能会考虑编写一个专门用于此任务的单独插件。您可以使用纯 Java 而不是 XML 来执行此操作,这并不像听起来那么难。有文档,并且有 Maven 的默认 API。您可以查看命名插件的源代码,了解如何满足您的要求。