罐子包装和分配

时间:2011-07-22 05:15:45

标签: java java-ee jar

我们在包中按预期布置了一些通用代码。 其中一些包是 handler, processor, util, registration

Common 这意味着这些将在多个Java / Java EE项目中重复使用,这些项目彼此无关。

问题在于包装的分发。

每个包都包含不同的功能单元,但放在一起,它们是API。

我们是否应该将个别功能捆绑到JAR中,最后说8-10个罐子。 例如:处理程序jar,注册jar等

我们应该采用最小公分母方法,即5个强制包的基础构建到一个罐子里。 任何其他人都需要该罐作为基础,并可以选择附加罐。

我们的构建系统是Ant + Ivy,这些依赖项将在编译和构建时解决。

3 个答案:

答案 0 :(得分:5)

除非你有很多很多的API类(想想Spring)或者意识到它们之间存在一些干扰,我认为没有理由把它们分成不同的jar。在单独的罐子中打破API的唯一另一个原因是让不同的团队独立工作。

管理单个jar简化了很多事情,并且不值得解决不存在的问题。

答案 1 :(得分:0)

使用单独的罐子的解决方案更好。顺便说一句,如果你使用maven并且每个逻辑组件都有自己的pom.xml,那么这是唯一的选择。

一个大罐子具有更容易分配的优点。例如,如果您的用户从互联网上下载jar并手动安装它,那么处理一个jar比使用多个jar更容易。但如果不是这种情况,我建议你使用多罐解决方案。但是别忘了在每个罐子上印上它的版本。至少将版本放到manifest.mf文件中。 Maven还将版本作为jar名称的一部分。这是非常好的做法。

答案 2 :(得分:0)

如果api更好,可以更好地分成多个罐子,否则会创建多个罐子

单罐的好处 如果任何应用程序想要使用多个jar,例如注册以及util。他/她必须只包括一个罐子。

<强>限制 如果你的jar大小非常大,那么你只在jar中使用util类。如果应用程序的大小对您来说不是问题,它可能会增加应用程序的大小,那么您可以避免它。