2011-07-22 59 views
0

我们有一些共同代码在预期的包装。 一些包是 handler, processor, util, registration罐子包装和配送

常见在这里表示,这些将是跨多个Java/Java EE的再利用项目它们是彼此无关。

问题是在包装分销。

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

我们是否应该将单个功能捆绑到一个JAR中,并最终生成8到10个罐子。 例如:处理器罐子,罐子登记等

我们应该采取的最小公分母的做法,是5个强制包在基本构建成一个单一的罐子。 任何人都需要该罐子作为基础,并可以选择附加罐。

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

回答

5

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

管理单个jar简化了很多事情,它不值得修复不存在的问题。

+0

谢谢 - 这是有道理的。我们在这个公司有一个争论 - 共同干涉是有效的 – shinynewbike

+0

它总是一个激烈争论的主题。我的观点通常是 - 越简单越好。 –

0

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

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

0

如果API非常庞大更好的分成多张罐子否则创建多个罐子

单罐子的好处 如果任何应用程序要使用一个以上的罐子如登记以及UTIL。他/她必须只包括一个罐子。

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