使用Tomcat进行Eclipse Web-App部署:提供多个项目的依赖关系?

我在使用Tomcat 6和Eclipse部署动态Web应用程序时使用的一些第三方库(JAR文件)存在问题。

请注意,我知道如何在设置中执行此操作,其中Web应用程序项目 – 直接 – 依赖于这些JAR。

但是,在我的设置中,我有两个Eclipse项目:

  • core是一个类库,依赖于a.jar
  • web是Web应用程序,依赖于核心

web的项目设置中,在部署程序集类别中,我添加了核心 ,因此Eclipse(或Tomcat – 我不太确定这里的负责人是谁)将core.jar放入我的Web应用程序的libs目录中。

问题是:当我试用Web应用程序时,当核心a.jar访问类时,会抛出NoClassDefFoundError 。 我该怎么办呢? 我不认为将a.jar放入我的Web应用程序的Deployment Assembly设置页面是正确的解决方案,因为它应该与Web项目无关, 核心项目依赖于什么。

基本上,我正在寻找一种方法来配置Eclipse(Tomcat?)以将核心的依赖关系“嵌入”到core.jar 。 关于这个的问题是,当我部署我的web项目时,会自动生成core.jar

非常感谢帮助。 提前致谢!

好吧,我自己也找到了答案。

对于那些将来阅读本文的人,我将逐步解释,使用我在原始消息中介绍的语义:

首先,打开核心项目的属性页面,然后导航到“Java Build Path”设置的“Libraries”选项卡:

在此处输入图像描述

确保通过’添加JAR …’添加您的核心项目依赖的类库a.jar 。 然后,进入“订购和导出”选项卡并激活刚添加的a.jar以进行导出。

在此处输入图像描述

然后转到“部署程序集”设置,并在此处添加a.jar ,方法是首先单击“添加…”,然后单击“Java构建路径条目”,最后选择a.jar 。 确保输入’../’作为a.jar的部署路径:

在此处输入图像描述

现在你完成了你的核心项目。 现在打开Web项目的“Java Build Path”设置的“Projects”页面,点击“Add …”添加核心项目:

在此处输入图像描述

最后,导航到“Deployment Assembly”设置页面,按“Add …”,然后选择“Project”并在下一个屏幕上选择您的核心项目:

在此处输入图像描述

你完成了。 无需将核心依赖项添加到Web项目中。

据我所知,eclipse不适合你。 项目依赖项适用于编译时。 跨越项目的运行时依赖项应由您处理。 您可以使用一个技巧来创建用户库。 转到首选项 – > Java – >构建路径 – >用户库。 创建一个新的用户库。 添加“核心”项目所依赖的所有jar子。 将其添加为“核心”和“Web”项目的依赖项。 要做到这一点,右键单击项目 – >构建路径 – >配置构建路径 – >库选项卡 – >添加库…

希望这可以帮助

我建议使用Maven ,它会自动为你编译jar文件, Eclipse可以很好地与Maven工作。