Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
m2eclipse类路径上的多个依赖项_Eclipse_Maven 2_Classpath_M2eclipse - Fatal编程技术网

m2eclipse类路径上的多个依赖项

m2eclipse类路径上的多个依赖项,eclipse,maven-2,classpath,m2eclipse,Eclipse,Maven 2,Classpath,M2eclipse,这可能是重复,但在eclipse中,如何处理本地maven存储库中同一库的各种依赖版本 问题是pom定义中指定的依赖版本是我需要使用的库(它们有可用的sources/javadoc等),但maven将所有可用的库版本放在类路径上,因此如果我按ctrl+shift+T或step键进入某个属于该依赖项的类,它可能是没有sources/javadoc的类,未在pom定义中声明,但在本地maven回购协议中声明。没有办法设置优先级 在pup-up窗口(Ctrl+shift+T)中有一个“从历史记录中删除

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

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

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

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

不,那不是真的。Maven将你告诉他的东西放在类路径上

(…)因此,如果我按ctrl+shift+T或单步进入某个属于该依赖项的类,它可能是一个没有sources/javadoc的类,一个不是在pom定义中声明的类,而是在本地maven repo中声明的类

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

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

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


在我看来,这是Eclipse工作的唯一直观方式——否则,“Open Type”应该只查看当前项目使用的JAR,还是“拥有”当前可见文件的项目使用的JAR?谢谢Pascal,你说得对,我完全忘记了其他工作集,我很久以前就停止使用工作集了,并且偶然地出现了所有的依赖版本,就像我在本地maven repo中列出的一样,所以它误导了我。我甚至没有注意到右上角的菜单。干杯