【问题标题】:Maven in eclipse Indigo, project dependency on Runtimeeclipse Indigo中的Maven,项目对Runtime的依赖
【发布时间】:2012-03-12 22:17:45
【问题描述】:

我在 Eclipse 中有一个 maven 项目,它作为依赖项具有另一个项目,我使用 mvn clean install 安装在我的本地存储库中。 pom中的依赖:

<dependency>
    <groupId>com.mycompany</groupId>
    <artifactId>mydependency</artifactId>
    <version>1.0.0</version>
</dependency> 

当我在 tomcat 中从 eclipse 运行项目时,在服务器上运行,如果我没有在 eclipse 中加载其他项目(mydependency),它运行良好。如果我在 Eclipse 中将 mydependency 作为 maven 项目导入(出于调试目的,我需要这样做),则该项目在运行时会以 ClassNotFoundException 失败。它找不到 mydependency 项目的类。 我做错了什么?

附:我已经尝试了通常的、清理、删除、重新导入项目、切换工作区、在 Eclipse 中删除/重新创建 tomcat,甚至切换了 Eclipse 安装...

【问题讨论】:

  • 除了在 Eclipse 中导入 mydependency 项目,您还做了什么?只需导入一个项目不应影响现有项目构建配置,除非您明确更改现有项目的某些内容。
  • 你在使用m2e吗?如果是这样,你有没有运行Update Project Configuration...
  • 不,我不记得改变了,哪些文件会描述场景?是的,我使用的是 m2e,更新项目配置并不能解决问题。谢谢
  • 我没有从你发布的信息中得到太多细节,所以只做一个 cmets。我们通常的做法(在依赖项目中启用源代码调试)是将依赖项目添加到主项目的构建路径中。右键单击 -> 构建路径 -> 配置构建路径,在 Projects 选项卡中,在此处添加库项目,然后在 Order 和 Export 选项卡中,更改列表的顺序,将依赖项目移动到上面的 maven 库依赖项。试试看是否有帮助。

标签: java eclipse maven eclipse-indigo


【解决方案1】:

第一个解决方案: 选择你的项目right-click-&gt; Maven -&gt; Disable workspace resolution

现在,当您进行调试时,调试器将找到 jar 文件 - 而不是源代码。您必须将源代码附加到库(选择 java 项目)

第二种解决方案

在 tomcat 上将项目作为 war 文件运行并远程调试。

第三种解决方案

安装 JD-Eclipse 。有帮助,但有时代码行与反编译的不一样。

【讨论】:

  • 谢谢Ajozwik,第一个解决方案似乎很方便,我可以调试,但我想知道原因,因此我不会接受更多的答案,看看是否有人有另一个答案。
  • 欢迎您。当tomcat试图从WEB-INF/lib加载时,我认为eclipse类加载器从项目加载类。阅读有关 tomcat 类加载器的信息。
猜你喜欢
  • 1970-01-01
  • 2012-01-25
  • 2011-09-15
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
相关资源
最近更新 更多