当我开发任何Web应用程序时,我添加了许多我的代码依赖于它们的jar。 我想知道什么时候我在服务器上部署战争服务器或容器如何使用这些罐子, 如果我直接在服务器模块上将它们发布或部署将是一个优势?!
答案 0 :(得分:0)
在服务器类路径上使用jar依赖项没有任何优势。这将迫使您依赖服务器本身,这在处理持续交付时不是一个好主意。
顺便说一句,你应该知道每个 war 文件在部署时都有自己的类路径,所以如果你部署一些 war ,请假设在Tomcat服务器上,它将使用它自己的类路径,其中包含必要的jar。容器(在这种情况下是Tomcat)对这些罐子一无所知,但你的应用程序会。
答案 1 :(得分:0)
当您的代码被执行时,容器将在您的战争中查看依赖jar是否可用。如果它在你的战争中找不到依赖jar,那么容器将遍历它的树,看它是否可以在容器本身的某处找到依赖。通过配置,可以反转,以便最后检查战争。
战争应该是自成一体的,战争的WEB-INF / lib文件夹中有依赖的战争。配置容器(可能是默认值)以首先检查战争。这可以保持隔离,有助于保持应用程序的稳定性。例如,容器可能已更新,但您的应用程序不需要更新。
将战争之外的那些依赖jar,在容器内的某个位置部署到共享文件夹,可能会使这些依赖的jar对所有部署的应用程序和/或容器本身可见。这最终会导致jar版本冲突和类加载器问题。不要这样做!