辩论:在战争中加入第三方图书馆是一个好主意吗?

时间:2010-06-17 17:14:59

标签: web-applications java-ee jar package

我们正在进行辩论。

一个。组装Web应用程序的“标准”方式。      使用我们所有的应用程序工件创建一个WAR,并在tomcat / shared / lib区域中部署所有其他组件,如hibernate和memcached等。

湾在tomcat / shared / lib中创建一个包含所有内容且没有任何内容的大规模战争。

优点 - 它保持模块化,战争很小。 必须特别通过部署过程来管理对共享/ lib的依赖性。

b的优点 - 所有依赖项都由构建过程控制,从而消除了任何错误空间。 b的战争 - 战争真的非常非常大。如果您通过网络部署到一个大型农场,那么它可能会产生影响。

希望了解其他人对此有何看法。

1 个答案:

答案 0 :(得分:1)

实际上,我认为B是“标准”方式: - )

我几乎一直都在选择B.这对我们的客户来说更简单 - 他们中的许多人没有管理Java应用程序服务器的技能 - 他们只是将WAR放到我告诉他们的地方,一切正常。

它也适用于我们的构建和部署 - WAR使用maven构建,因此包含所有必需的依赖项,也可以使用货物插件部署到我们的QA app服务器。

当你有几个需要休眠或其他依赖但不同版本的webapp时,它也避免了“WAR-hell”。

我只会在完全控制应用服务器时选择A,并且每个webapp复制公共库的开销因此过大,或者我能够确保使用相同版本的所有应用程序进行测试依赖关系。然后,我知道依赖项可以安全地移动到应用服务器的共享区域。