Java 罐子包装和分发

Java 罐子包装和分发,java,jakarta-ee,jar,Java,Jakarta Ee,Jar,正如预期的那样,我们在包中列出了一些通用代码。 其中一些软件包是 处理程序、处理器、util、注册等 这里的Common意味着这些将在相互无关的多个Java/javaee项目中重复使用 问题是关于分发的包装 每个包包含不同的功能单元,但放在一起,它们就是一个API 我们是否应该将单个功能捆绑到一个罐子中,最终得到8-10个罐子呢。 例如:处理程序jar、注册jar等 或 我们应该采用最小公分母的方法,即在一个jar中构建5个强制包。 其他任何人都需要这个jar作为基础,并且可以选择附加jar 我

正如预期的那样,我们在包中列出了一些通用代码。 其中一些软件包是
处理程序、处理器、util、注册

这里的Common意味着这些将在相互无关的多个Java/javaee项目中重复使用

问题是关于分发的包装

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

我们是否应该将单个功能捆绑到一个罐子中,最终得到8-10个罐子呢。 例如:处理程序jar、注册jar等

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


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

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


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

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


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

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


一个大罐子的优点是更容易分发。例如,如果您的用户从internet下载jar并手动安装,那么处理一个jar比处理多个jar更容易。但如果不是这样的话,我建议您使用multi-jar解决方案。但别忘了在每个罐子上贴上它的版本。至少将版本放入manifest.mf文件。Maven还将版本作为jar名称的一部分。这是很好的做法

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


一个大罐子的优点是更容易分发。例如,如果您的用户从internet下载jar并手动安装,那么处理一个jar比处理多个jar更容易。但如果不是这样的话,我建议您使用multi-jar解决方案。但别忘了在每个罐子上贴上它的版本。至少将版本放入manifest.mf文件。Maven还将版本作为jar名称的一部分。这是很好的做法

如果api很大,最好分成多个JAR,否则创建多个JAR

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

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

如果api很大,最好将其拆分为多个JAR,否则会创建多个JAR

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

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

谢谢-这很有意义。我们在公司里就这一点展开了争论——共同干涉是有道理的——这一直是激烈争论的主题。我的论点通常是越简单越好。谢谢,这是有道理的。我们在公司里就这一点展开了争论——共同干涉是有道理的——这一直是激烈争论的主题。我的论点通常是越简单越好。