2

我有两个日食项目:

  1. 与打包为 jar 的其他项目共享的核心类
  2. 一个在 Tomcat 7 上运行的 Web 应用程序,利用核心类 jar 并打包为一个战争

Maven 按预期将核心类作为 jar 编译并安装到本地存储库中。如果我使用 Maven 部署到 Tomcat,一切都很好。

如果我在 Eclipse 中的 Tomcat 服务器上配置 Webapp,只要我在 Eclipse 中关闭核心项目,我就可以毫无问题地进行热部署。当前核心 jar 文件存放在 Tomcat 上的 WEB-INF/lib 文件夹中,一切看起来都很好。

但是,当我在 Eclipse 中打开核心类项目时,我遇到了两个问题:

  1. 对于核心 jar 中的任何类,我都会得到 java.lang.NoClassDefFoundError
  2. 我注意到 WEB-INF/lib 文件夹中的 jar 文件现在是一个名为“core.jar”的目录,其中包含所有 .java 源文件(即没有 .class 文件)

我认为爆炸的 jar 是问题,但我发现除了关闭 Eclipse 中的核心项目并观察本地 maven repo 中的 jar 正确放置在 lib 文件夹中之外,没有办法阻止这种行为。

我尝试在 Eclipse 构建路径和资源组装屏幕中手动添加 jar,但它们会导致其他错误等等。Eclipse 已经通过 Maven 注册了依赖关系,所以关系已经存在,我不需要手动干预。

有没有人遇到过这个问题并修复它?

4

1 回答 1

2

Tomcat throws ClassNotFound exceptions for classes in other open eclipse projects的问题有一个对我有用的答案

如果您进入项目属性,选择“部署程序集”项,单击“添加...”并选择“项目”,您可以添加依赖项目,问题应该得到解决。

于 2013-11-26T14:47:49.677 回答