在Eclipse中的热部署中,从依赖jar中找不到类

时间:2013-08-14 10:26:59

标签: eclipse maven tomcat deployment jar

我有两个日食项目:

  1. 与打包为jar的其他项目共享的核心类
  2. 在Tomcat 7上运行的Webapp利用核心类jar并打包为战争
  3. Maven按预期编译并将核心类作为jar安装到本地存储库中。如果我使用Maven部署到Tomcat,一切都还可以。

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

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

    1. 我得到核心jar中任何类的java.lang.NoClassDefFoundError
    2. 我注意到WEB-INF / lib文件夹中的jar文件现在是名为“core.jar”的目录,其中包含所有.java源文件(即没有.class文件)
    3. 我认为爆炸的jar是问题,但除了关闭Eclipse中的核心项目并观察本地maven repo中的jar正确放置在lib文件夹中之外,我发现没有办法阻止这种行为。

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

      有没有人遇到过这个问题并修好了?

1 个答案:

答案 0 :(得分:2)

问题Tomcat throws ClassNotFound exceptions for classes in other open eclipse projectsan answer对我有用:

  

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