【发布时间】:2014-07-03 11:16:15
【问题描述】:
我有一个 maven(多模块)项目,其中包含类似 IAction 的内容。在这个项目中,我实施了大约 50 个不同动作的实施。每个动作由一个MyAction.java 和一个MyAction.properties 文件组成。
我使用 Java 的 SPI (java.util.spi) 在运行时加载所有实现。这一切都很好,但现在我想将每个 Action 打包到一个 jar 中,这样我最终会得到 50 个 jar。
什么是完成此任务的好方法?我真的不想为每个操作创建一个子模块,因为这需要大量维护。
【问题讨论】:
-
您可以在 bash/batch 中编写脚本(取决于您的操作系统),并使用一些 -Dproperty=iterator_index 启动 mvn 50 次,然后使用 build-helper-maven-plugin 编译来自“ src/main/java/org/mycompany/${iterator_index}"
-
不,不要这样做。而是编写一个小插件来做到这一点。否则,您的构建将完全依赖于特定环境。
-
50 个罐子......和世界上最长的类路径。你确定要这么做吗?您的客户真的会在此基础上挑选要部署的操作吗?
-
超过 50 个 jar 的项目并不少见。我使用了一个自定义的 jar 类加载器来处理它,所以不用担心类路径。它是关于能够自定义安装并允许单独测试功能。
标签: java maven jar packaging generated