eclipse - m2eclipse 对类路径的多个依赖项

标签 eclipse maven-2 classpath m2eclipse

这可能是重复的,但是在 Eclipse 中,我如何处理本地 Maven 存储库中同一库的各种依赖版本?

问题是pom定义中指定的依赖版本是我需要使用的库(它们有可用的sources/javadoc等),但是maven将所有可用的库版本放在类路径上,所以如果我ctrl+shift+ T或进入属于该依赖项的某个类,它可能是没有sources/javadoc的类,该类未在pom定义中声明,而是在本地maven存储库中声明。没有办法设置优先级。

弹出窗口(Ctrl+shift+T)中有一个“从历史记录中删除”功能,但它实际上没有用,不起作用。

最佳答案

The problem is that dependency versions specified in pom definition are the libraries I need to use (they have sources/javadoc available etc.), but maven puts all the available library versions on classpath (...)

不,那不是真的。 Maven 将您告诉他的内容放在类路径上。

(...) so that if I ctrl+shift+T or step into some class which belongs to that dependency, it might be the one without sources/javadoc, the one not declared in pom definition but in local maven repo.

使用 Eclipse,当您打开类型时,Eclipse 只需在工作区中所有项目的类路径中搜索类型。因此,如果您的项目 A 的类路径上有 foo-X.jar ,项目 B 的类路径上有 foo-Y.jar 并且两者都包含Bar 类型,搜索 Bar 将列出两个版本。

但是 Eclipse 不会在工作空间中未定义为项目依赖项的 JAR 中进行搜索,也不会在本地存储库的所有 JAR 中进行搜索。这并不是 Maven 或 m2eclipse 特有的问题。

也就是说,我知道将搜索限制为仅项目 A 的依赖项的唯一方法是使用下面的菜单定义一个工作集右上箭头:

alt text

关于eclipse - m2eclipse 对类路径的多个依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4006107/

相关文章:

Android,为开发设置我的 Fairphone (FP1),(?????没有权限)

java - Maven 程序集插件因 NullPointerException 失败?

maven-2 - 如何让 jetty-maven-plugin 部署从存储库中检索到的 war ?

android - 编译应用程序时出错

clojure - 无法在类路径上找到clojure/core/async__init.class或clojure/core/async.clj

c - 使用 Eclipse 时在 Windows 上分析 C 代码

java - 是否有可能使 Eclipse p2 配置机制在*本地*运行?

java - 在 Eclipse 中是否有向方法签名添加异常的快捷方式?

maven-2 - Maven 中的元配置文件

java - 从 tomcat 访问 jar 文件