企业应用程序的正确打包方式是什么
假设您的应用程序仅包含一个 war 文件。我的理解是,我需要的任何第三方库,并且我可以提供,我将包含在我的战争中,在 WEB-INF/lib 中。
今天,我遇到一个人,他告诉我一些有关 JBoss 7 及其模块概念的详细信息,建议应用程序不应提供任何第三方库......而是从应用程序服务器请求正确版本的库。
我仍然是那种喜欢提供完整包的人,不需要其他用户必须确保它们已完成的任何依赖项。 现在,长话短说......是否有一个“Java EE 标准”答案,如何应对企业应用程序中的第三方库?'
Assume your application consists only of one war file. My understanding is, that any third party library I need, and I am allowed to provide, I will include in my war, in WEB-INF/lib.
Today I came across someone who told me some details about JBoss 7 and their concept of modules, suggesting that an application should not deliver any third party library...but rather request the library in the correct version from the application server.
I am still more the type of guy who likes to deliver a full package, w/o any dependencies another user has to make sure, they are fullfilled. Now, long story short....is there a "Java EE standard" answer, how to cope with third party libraries in enterprise applications?'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据 Java EE 6 教程:
因此 /WEB-INF/lib 是正确的。
Per the Java EE 6 Tutorial:
So /WEB-INF/lib is correct.
“标准”答案取决于您的 Java EE 应用服务器是否支持 OSGi 或 JSR- 277标准。
JBOSS 版本 7 支持 OSGi;早期版本可能不会。
所以这实际上有两个答案:一个用于前 OSGi 服务器(“将 JAR 放入您的应用程序或服务器 /lib 的 WEB-INF/lib 中”)和后 OSGi(“使用 OSGi”)。
The "standard" answer depends on whether or not your Java EE app server supports the OSGi or JSR-277 standard.
JBOSS version 7 does support OSGi; earlier versions might not.
So it's really two answers: one for pre-OSGi servers ("put JARs in WEB-INF/lib for your app or the server /lib") and post-OSGi ("use OSGi").