使用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
工作。
- 如何从首选项页面获取文件的路径,并通过Workbench上的Button在控制台上打印输出?
- Eclipse格式化程序保留One-Liners
- drools 6.0中的未知KieSession名称(尝试将drools添加到现有的maven / eclipse项目时)
- 与redmine一起食用mylyn
- 如何在Eclipse中引用不同的Java项目
- java.lang.NoClassDefFoundError:如何修复此错误?
- 缺少cxf.xml? 在maven中失败,在Eclipse中工作
- 如何在Eclipse中创建可运行的JAR,就像在Eclipse中一样
- 在Eclipse中为从Eclipse启动的应用程序指定备用JRE