【问题标题】:m2eclipse multiple dependencies on classpathm2eclipse 对类路径的多个依赖项
【发布时间】:2011-04-29 16:45:54
【问题描述】:

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

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

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

【问题讨论】:

    标签: eclipse maven-2 classpath m2eclipse


    【解决方案1】:

    问题是 pom 定义中指定的依赖版本是我需要使用的库(它们有可用的源/javadoc 等),但 maven 将所有可用的库版本放在类路径上(...)

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

    (...) 这样如果我 ctrl+shift+T 或进入某个属于该依赖项的类,它可能是没有源/javadoc 的类,即未在 pom 定义中声明但在本地 maven repo 中声明的类.

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

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

    也就是说,我知道限制搜索的唯一方法,比如项目 A 的依赖项,就是使用下面的菜单定义一个 Working Set右上箭头:

    【讨论】:

    • 据我所知,这是 Eclipse 可以 工作的唯一直观方式 - 否则,“Open Type”是否应该只查看当前项目使用的 jars,或者“拥有”当前可见文件的项目使用的 jars?
    • 感谢 Pascal,你说得对,我完全忘记了其他工作集,我很久以前就停止使用工作集了,并且不小心列出了我在本地 maven repo 中列出的所有依赖项版本,所以它误导了我。我什至没有注意到右上角的菜单。干杯
    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    相关资源
    最近更新 更多