通常,依赖关系捆绑在Java .war-packages内。战争包与共享库内的依赖关系
然而,也可能会下降的依赖关系到共享库中,使用相同的依赖关系为每个部署的工件的。
问题:什么是每一种方法的优点和缺点?在哪些情况下你会使用它们?
最大的要求是直观性/可维护性。我不关心内存消耗,磁盘空间使用率,带宽等,因为这些购买很便宜。
无论如何,一些点,每个:
里面包括WAR依赖关系:(?)
- “时点” 的方法
- 易于维护(需要更少的配置&脚本等)
- 易于部署到应用服务器
- 每个模块都可以在图书馆 定义特定版本210
- 减少类加载错误的风险?
使用共享库:
- 减少内存消耗(琐碎?)
- WAR部署可以访问相同的实例/变量等,因为它们共享类路径?这听起来真的很糟糕? (它真的工作方式,或者是他们在不同的上下文中运行,只是使用相同的物理文件?)
- 了做分布和部署更加困难,因为依赖关系必须被单独维护/部署
- 包是在较小大小(平凡)
- 依赖最多可以升级,没有战争的应用程序的实际重新部署(有什么好处,真的..)
当然,我们可以使用两种方法的最好的方面,只是提供通用库作为共享库,并在WAR中包含版本特色。但是,这使维护工作倍增,感觉像是一个不行。
目前我使用Glassfish的3.1.1,但这个问题确实是应用服务器不可知。
有趣的,好像我必须更详细地阅读FAQ。我认为我提出了两个严格的问题 - 考虑直觉性/可维护性,询问什么是好的,以及在哪种情况下选择任一方法。我并没有问一般哪一个更好 - 根据所给出的事实,每个人都可以自己决定自己。我甚至给出了一个很好的起点,并从中得到了建设性的答案。 –