它可能是重复,但在eclipse中,我如何在本地maven存储库中处理同一个库的各种依赖版本?
问题是pom定义中指定的依赖版本是我需要使用的库(它们有源/ javadoc可用等),但是maven将所有可用的库版本放在classpath上,这样如果我按住Ctrl + shift + T或步入属于该依赖项的某个类,它可能是没有sources / javadoc的那个,没有在pom定义中声明但在本地maven repo中声明的那个。无法设置优先级。
在pup up窗口中有一个功能“从历史记录中删除”(Ctrl + shift + T),但实际上没用,不起作用。
答案 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的依赖关系,就是使用下面的菜单来定义工作集右上箭头: