因此,我从一个从 Eclipse 正确构建和调试的 Web 服务项目(只是一个动态 Web 项目)开始。我们已经提取了一大块想要放入共享库的通用代码,所以现在这些类将进入 Web 项目引用的单独 jar 项目中。
在 web 项目上,我做了 Project->Properties->Java Build Path->Projects->Add 并添加了 jar 项目。这正确地解决了所有编译时类路径问题,并且一切正常。但是在运行时,当 tomcat 服务器启动时,spring 尝试注入 jar 文件中包含的一些类,我得到一个 NoClassDefFoundError。
我的 .class 和属性文件以及 META-INF 目录的内容显示在 ./build 目录中,但我的 WEB-INF/lib 目录似乎被就地引用,并且 jar 依赖项没有被复制在其中显示为 Web 应用程序库的一部分。
告诉eclipse另一个jar项目需要在运行时对tomcat可用的神奇咒语是什么?从我们的 ant 构建脚本中,我们首先将另一个项目构建到 WEB-INF/lib 中,一切正常,但不适用于 Eclipse 调试。