我在 Eclipse 3.7.2 中创建了一堆项目。让我们给其中一些命名:
- W(动态 Web 项目)
- A(一些图书馆)
- B(一个有很多常用东西的库,也被其他项目使用)
项目 A 依赖于项目 B,因此 B 在 A 的构建路径中。项目 W 依赖于项目 A,所以我在 W 中添加了 A 作为部署程序集。
当我从 Eclipse 中导出 WAR 时,只有 A 的 JAR 文件被添加到 WEB-INF/lib。Eclipse 显示以下警告:
类路径条目 /B 不会被导出或发布。可能会导致运行时 ClassNotFoundExceptions。
警告是正确的。我在运行时得到一个 ClassNotFoundExceptions 。当然,Eclipse 为“将关联的原始类路径条目标记为发布/导出依赖项”的警告提供了快速修复。但是,这并不能解决我的问题。B 仍然没有与 W 一起部署。
我尝试在 A 中手动添加 B 作为部署程序集。这包括 A.jar 中的 B.jar,这并不是我真正想要的,我仍然得到 ClassNotFoundExceptions。
唯一可行的方法是在 W 中手动添加 B 作为部署程序集。Eclipse 仍然显示上面的警告,但运行时异常消失了。
我错过了什么,或者这真的是让它工作的唯一方法吗?