eclipse - 在 Eclipse 中热部署时从依赖 jar 中找不到类

标签 eclipse maven tomcat deployment jar

我有两个 Eclipse 项目:

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

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

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

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

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

我认为爆炸的 jar 是问题所在,但除了关闭 Eclipse 中的核心项目并观察本地 Maven 存储库中的 jar 被正确放置在 lib 文件夹中之外,我没有找到任何方法来阻止此行为。

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

有人遇到过这个问题并解决了吗?

最佳答案

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

If you go to the project properties, pick the item "Deployment Assembly", click "Add..." and choose "Project", you can add the dependent project and the issue should be solved.

关于eclipse - 在 Eclipse 中热部署时从依赖 jar 中找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18229249/

相关文章:

未检查具有 Tomcat 代理和 htaccess 文件的 Apache HTTPD VirtualHost

java - 缺少 tomcat 资源,servlet 未运行

java - 在 View 中不更新 JSF 支持托管 Bean 时遇到问题

java - 用于后端服务器测试的快速 Java UI 工具

java - 我如何从另一个模块 maven 导入类

eclipse - 在eclipse中设置引用其他环境变量的环境变量

maven - 使用 Maven Surefire 运行嵌套的 JUnit 5 测试

java - 具有相同子依赖的不同版本的 Maven 依赖

python - 在eclipse中用python编程时如何使用simplegui模块?

java - Eclipse项目 "locked"