【问题标题】:Adding jars to Tomcat classpath将 jars 添加到 Tomcat 类路径
【发布时间】:2013-03-15 02:44:28
【问题描述】:

我有一个在 Tomcat 上运行的 Eclipse 项目,我的依赖项 jar 位于 WEB-INF/lib 目录中。一切都很棒。但是导出时创建的war文件很大,我需要将它来回发送到测试服务器,这将非常耗时。这似乎是一种浪费。

因此,我将所有依赖项 jar 放在我的文件系统中的一个文件夹 dependency_jars 中,并将构建配置为指向那里。构建工作正常,但是当我运行它(仍然在我的本地机器上)时,应用程序抛出运行时错误。

阅读后,我转到项目属性并将 jars 添加到 Web 部署程序集。现在运行时可以工作了,但是导出的战争再次将所有 jar 打包在一起。

那么我如何让我的依赖项可用于运行时环境,而不需要 Eclipse 将它们打包到 war 中?

【问题讨论】:

  • 也许这一点信息可以更清楚地说明:我正在寻找类似于在 Eclipse 上导出可运行 jar 时的选项。在“库处理”下,有一个单选按钮可以“将所需的库复制到生成的 JAR 旁边的子文件夹中”。这将应用程序代码与依赖项分开,从而使所有内容都井井有条。

标签: eclipse tomcat dependencies war


【解决方案1】:

好的,我不确定这是最优雅的解决方案,但我所做的是将 Tomcat 配置为使用外部库,将依赖项 jar 放在那里,然后让 eclipse 创建包含所有内容的战争,从命令行,去掉依赖jar,重新打包war,最后发送出去。

嗯,绝对不是一个优雅的解决方案。但它有效。步骤如下:

  1. 将 Tomcat 配置为使用外部资源库。转到 tomcat_home/conf/catalina.properties 并在以“定义“通用”类加载器内容的逗号分隔路径列表...”开头的注释下添加您的目录

  2. 通过 Eclipse 导出战争。

  3. 引爆战争(双关语可能值得在这里:) jar -xvf MyWar.war

  4. 删除您的依赖 jars(现在位于上述步骤 1 的外部目录中。)

  5. 重新打包战争:jar cvf MyWar.war WEB-INF

【讨论】:

    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 2012-03-14
    • 2011-06-15
    • 1970-01-01
    相关资源
    最近更新 更多