【发布时间】:2012-02-16 19:55:45
【问题描述】:
如果我们正在构建一个大型 java 类库,什么决定何时最好将它们拆分为单独的 jar 文件?
我的理解是拥有一个大 jar 文件不会显着影响 JVM 性能。但是,如果在对 jar 进行更改或添加时运行一整套冗长的测试,则会产生一些开发成本。在 maven 和 archiva 中使用大型 jar 文件是否有成本或收益?
人们在实践中使用什么策略?
【问题讨论】:
如果我们正在构建一个大型 java 类库,什么决定何时最好将它们拆分为单独的 jar 文件?
我的理解是拥有一个大 jar 文件不会显着影响 JVM 性能。但是,如果在对 jar 进行更改或添加时运行一整套冗长的测试,则会产生一些开发成本。在 maven 和 archiva 中使用大型 jar 文件是否有成本或收益?
人们在实践中使用什么策略?
【问题讨论】:
只考虑变更管理方面,其余的可以忽略不计。 Jar 文件是确定最小易发布单元的东西。
【讨论】:
我们喜欢将罐子分成更小、更易于管理的单元。每个 jar 都特定于执行一部分任务。当我们开发一个应用程序时,我们只会将它需要的 jar 放入其中,而不是一个包含所有东西的大 jar。
我们有用于安全性、UI、通用结构和界面、本地化以及许多其他特定于我们行业的东西的 jar。
【讨论】:
jar项目逻辑分离层,没有循环依赖,一层只依赖前面的层。
您可以(除了项目名称)在 IDE 中列出描述性名称,保持项目有序的一种方法是使用缩写和数字前缀:
【讨论】: