0

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

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

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

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

4

1 回答 1

0

好的,我不确定这是最优雅的解决方案,但我所做的是将 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

于 2013-03-27T16:10:44.017 回答