tomcat - 在 WAR 中打包 JAR 还是放在类路径中?

标签 tomcat maven jar classpath war

我有一个 Spring MVC 应用程序,它有一个公共(public)前端 WAR、一个管理前端 WAR 和一个共享服务 JAR。我的两个前端项目依赖于各种 Spring JAR,我的共享服务 JAR 也是如此。他们需要的 Spring JAR 列表相似但不同。此外,这两个基于 WAR 的应用程序依赖于共享服务 JAR。

在捆绑 JAR 或设置类路径方面,您将如何部署这组应用程序/JAR?您会在两个 WAR 文件中包含所有适当的 Spring JAR 和服务 JAR 吗?您会把所有共享的 JAR 文件放到类路径中吗?如果是这样,您会通过命令行参数将它们放在 Tomcat(我正在使用的应用程序服务器)的类路径中,还是只将类路径添加到系统类路径?对于开发和生产场景,您的方法会有所不同吗?

作为引用,我使用的 Maven 已经将所有内容打包到 WAR 文件中,但我不确定这是否是最佳实践方式。

更新: 作为引用,我发现此页面非常有用,阅读:http://www.mulesoft.com/tomcat-classpath

谢谢,

詹姆斯。

最佳答案

让您的 war 文件自包含,而不是将内容放在系统类路径中。这样你就不必担心你的系统和 webapp 类加载器之间的类加载问题,并且从长远来看会为你自己省去很多挫折。磁盘空间和内存都很便宜。

关于tomcat - 在 WAR 中打包 JAR 还是放在类路径中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754180/

相关文章:

java - 来自 context.xml 的 Maven 配置文件的不同资源

java - Elastic Search for Spring Boot 2.1.3的最新稳定版本

java - 找出依赖发行者

java - 如何使用 Maven 运行多模块项目

apache - jenkins 安装是否需要 Apache Web 服务器

java - tomcat 上的 WebRTC

tomcat - HAProxy - URL 重定向和重写

java - maven:依赖编译错误

Java .jar 文件无法接收套接字消息

android - 为什么在通过 Eclipse 添加 JAR 后在 Android 上出现 NoClassDefFoundError?