Eclipse:Maven搜索依赖项不起作用


91

我在新的工作区中创建了一个新的简单Maven项目。

当我在Eclipse编辑器中打开pom.xmlDependencies视图并选择Add..依赖项时,无论我在搜索字段中输入什么搜索条件,都不会有搜索结果:

例如,它立即给我Results for 'spring' (0)

在其他工作区中,对于我现有的项目,我没有这个问题。

有办法解决吗?


3
我相信以下链接中有解决方案:stackoverflow.com/questions/7065478/classic-error-unable-to-update-index-for-centralhttp-repo1-maven-org-maven2 [1]:stackoverflow.com/questions/ 7065478 /…
Eric Wang

Answers:


187

Eclipse工件搜索取决于存储库的索引文件。似乎您没有下载索引文件。

转到窗口->首选项-> Maven并检查“开始时下载存储库索引更新”。重新启动Eclipse,然后查看进度视图。索引文件应该正在下载。

完全下载后,即可使用工件搜索。

Maven Settings

更新 您还需要在“ maven存储库视图”中重建Maven存储库索引。

在此视图中,打开“全局存储库”,右键单击“中央”,选中“启用完整索引”,然后在同一菜单中单击“重建索引”。

将下载一个66M的索引文件。

Maven存储库->重建索引


4
窗口->首选项-> Maven
McLovin 2015年

5
重新启动时,存储库更新会花费大量时间,不知道它是否也完成,还有其他选择吗?
Vasanth Nag KV

5

在日食中,转到首选项Maven屏幕截图 Windows- >首选项-> Maven 勾选选项“启动时下载存储库索引更新”。您可能需要重新启动Eclipse。

也转到Windows->显示视图->其他-> Maven-> Maven存储库 Maven存储库视图截图

在“ Maven存储库”面板上,展开“全局存储库”,然后右键单击“中央存储库”并选中“已启用全索引”选项,然后单击“重建索引”

完整索引截图


1
您的答案如何与马秀君先前接受的答案相加?好像您已经复制了该答案但重新措词一样。甚至您的答案中的屏幕截图也几乎与接受的答案相同!
Skomisa

@skomisa我根本没有复制答案。当我实际遇到这个问题时,我回答了这个问题。屏幕截图也来自我的工作。复制和粘贴答案对stackoverflow没有意义。如果我要复制粘贴,到现在我已经回答了成千上万的问题了,但我还没有。
Hetal Rachh

1
是的,但是您的答案只是重复接受的答案中提供的信息。
Skomisa

4

如果您位于公司代理中,而新项目没有使用代理凭据指向正确的settings.xml文件,则可以得到此结果。

如果您正在使用Maven代理(例如Nexus),并且代理的索引以某种方式弄乱了,您也可以获取此信息。我不知道描述此问题的方法。无所事事或致电设置Maven代理的人。

如果新的工作区尚未从Maven Central或从代理下载索引,则也可以获取此信息。(这是最好的选择,因为您只需要稍等片刻即可解决。)


实际上,我打开了两个工作区(在两个不同的日食中),在其中一个中它起作用而在另一个中则不起作用,因此它不能是代理或Internet连接问题。而且两个工作区中都没有setting.xml文件。.我认为您可能对下载的索引是正确的,但是我不知道如何下载它(从昨天开始我就一直遇到这个问题,因此等待它毫无用处)
Majid Laissi 2012年

1
我正在使用MyEclipse,首选项可能与您的不同。但是我有一个按钮,您可以通过窗口>首选项> MyEclipse> Maven4MyEclipse>用户设置进入。该按钮标记为“重新索引”,如果单击它,可能会有所帮助。这里有图片和更多信息:(单击)
Lee Meador 2012年

BTW-settings.xml是在用户文件夹的.m2文件夹中找到的文件。(Windows 7是c:\ Users \ YourName \ .m2,Linux是〜/ .m2),它可以保存多个工作区的全局信息。该首选项页面可让您选择它。
Lee Meador 2012年

感谢您的时间。我没有运气尝试过,但是Reindex只会重新索引我的本地Maven存储库(我已经拥有的库)?对于settings.xml文件,这两个工作空间都不存在(Eclipse首选项/用户设置参考C:\Users\XX\.m2\settings.xml并说User settings file doesn't exist),并且这两个工作空间都是同一件事,所以我想这并不重要。
Majid Laissi 2012年

有关文件中内容的信息,请参见http://maven.apache.org/settings.html。只要没有代理,没有密码以及您需要的所有东西都在Maven Central中,您就可以不用密码。
Lee Meador

4

对我来说,解决此问题的目的是:

  • 删除〜/ .m2
  • 在中央存储库的Maven存储库视图中启用“已启用全索引”
  • 中央Maven存储库上的“重建索引”

在Eclipse重新启动后,一切工作正常。


3

Maven Add依赖项实际上来自Maven索引。如果索引是最新的,则结果应该从那里开始。

如果转到maven存储库,然后选择全局存储库,则应该看到一个中心...选项卡,然后选择该选项卡,其中应该有一个文件夹列表,并且您应该能够从中查看所有索引。如果没有,则意味着您没有获得完整索引,那么您可以右键单击它并启用完整索引。

我最让我烦恼的另一件事是,即使我做了所有事情,当我键入“ spring”时它仍然没有显示任何内容。这实际上是我做错的地方。如果您仅键入一些附加文本“ springframework” BOOM,则结果在那里。


1

我也有同样的问题。上面建议的所有选项对我都不起作用。但是我发现,如果我说手动为org.springframework.spring-core版本4.3.4.RELEASE添加groupid / artifact / version并保存pom.xml,则依赖关系会自动下载,并且搜索已经存在的jar在存储库中。但是,如果我现在搜索org.springframework.spring-context(在当前依赖项中不存在),则此搜索仍然无效。


0

使用https://search.maven.org/手动前缀FC:搜索类名。Netbeans和Eclipse似乎都太笨了,无法使用该搜索界面,而且下载的存储库索引的千兆字节似乎不包含任何类信息。完全浪费磁盘空间。这些IDE项目最近维护得很差,我希望他们将开发转移到GitHub。


0

提供组ID和工件ID来下载所需的jar文件是必要的。如果要搜索,只需在这些字段中使用*,*。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.