m2eclipse对类路径的多个依赖

时间:2010-10-23 21:16:04

标签: eclipse maven-2 classpath m2eclipse

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

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

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

1 个答案:

答案 0 :(得分:4)

  

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

不,那不是真的。 Maven把你告诉他的东西放在了课堂上。

  

(...)所以,如果我按Ctrl + shift + T或步进属于该依赖项的某个类,它可能是没有sources / javadoc的那个,没有在pom定义中声明但在本地maven repo中声明的那个

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

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

那就是说,我知道限制搜索的唯一方法,比如说项目A的依赖关系,就是使用下面的菜单来定义工作集右上箭头:

alt text