Jakarta ee 如何将不同war文件中的公共库隔离到公共位置?

Jakarta ee 如何将不同war文件中的公共库隔离到公共位置?,jakarta-ee,deployment,shared-libraries,war,ear,Jakarta Ee,Deployment,Shared Libraries,War,Ear,这似乎是一个新手问题,但只是想澄清一下。我有一个在服务器上部署了多个WAR的项目。其中大多数在lib文件夹中使用相同的jar文件。有没有一种方法可以将公共库(比如构建EAR/lib)与它们可以阅读的地方分开,而不是将相同的JAR打包成单独的WAR。您可以将这些JAR放在tomcat/lib或jboss/server/default/lib中。您确定它们是相同的JAR吗?问题是不同的战争可能使用不同版本的普通罐子。。。通过设计,servlet容器将确保将每组文件加载到不同的类路径上。@Bala无法

这似乎是一个新手问题,但只是想澄清一下。我有一个在服务器上部署了多个WAR的项目。其中大多数在lib文件夹中使用相同的jar文件。有没有一种方法可以将公共库(比如构建EAR/lib)与它们可以阅读的地方分开,而不是将相同的JAR打包成单独的WAR。

您可以将这些JAR放在tomcat/lib或jboss/server/default/lib中。您确定它们是相同的JAR吗?问题是不同的战争可能使用不同版本的普通罐子。。。通过设计,servlet容器将确保将每组文件加载到不同的类路径上。@Bala无法完成。因为当我构建它们时,build.xml从war/web/lib读取lib。结果,建成后,它们都被打包了。@MarkO'Connor是的,它们都是相同的罐子。其中大多数直接使用来自同一gwt安装的gwt JAR。所以版本冲突不可能存在,因为它们都是标准的。像这样的。。项目1编译-类路径中的gwt jars构建war-war中的gwt jars/../lib/Project 2。。。。项目3。。。最终,在服务器上。。部署/../war1(gwt-jars)、war2(gwt-jars)、war3(gwt-jars)、war4(gwt-jars)…确定您对@Bala的回答包含了这个问题。在构建代码时,您引用的是应用程序部署中的jars容器。如前所述,如果您使用的是Maven,您可以将您的依赖项声明为“提供的”作用域,它将被下载,可用于编译,但不随war打包。您的ANT构建需要做类似的事情。要么采用像ivy这样的依赖项管理解决方案,要么用代码存储依赖项,但要确保它们按依赖项类型分组:“编译”、“运行时”、“测试”、“提供”