【问题标题】:Maven does not list current version of a libraryMaven 没有列出当前版本的库
【发布时间】:2014-02-24 10:47:56
【问题描述】:

对于 NetBeans 8 beta 中基于 Maven 3 的项目,当我上下文+单击“项目”导航器的“依赖项”项并选择“添加依赖项...”菜单项时,我会看到一个用于搜索存储库的对话框.

每次我输入“slf4j-api”并选择找到的项目“org.slf4j : self4j-api”,我都会得到不同的结果。有时在版本列表中我得到 1.7.0,有时是 1.7.5,但从来不是最新的:1.7.6 可从 slf4j download page 下载。

为什么我在一分钟后搜索并显示列表时列表会发生变化?

所以我尝试搜索“logback-classic”,然后单击“ch.qos.logback : logback-classic”。最大版本号是 1.0.13。那是去年五月发布的。从那时起,1.1.0 版于 2014 年 1 月 28 日发布,1.1.1 版于 2014 年 2 月 5 日发布。

为什么 Maven 不提供这些更高版本?

是缓存问题吗?有什么方法可以强制 Netbeans 中的对话框更新其可用版本列表?

【问题讨论】:

  • 这是一个缓存问题; Netbeans 可能会保留一份 Maven 索引的副本。我在 Eclipse 中看到过同样的问题。
  • @AaronDigulla 也许是一个缓存问题,但我不知道如何。我在过去几周安装了 NetBeans,而这些产品是几个月前发布的。
  • 在 Eclipse 中,您可以选择在每次启动时下载索引。不知道Netbeans有没有类似的选择。
  • @BasilBourque:Maven 索引是从您使用的存储库服务器下载的。它是一个文件,其中包含 repo 中所有工件的列表。何时安装 NetBeans 并不重要,因为文件来自其他地方。
  • 你们缺少的一点是版本列表更改。我可以打开列表查看一些最新版本,然后关闭列表。我再次打开列表,只看到旧版本。然后我第三次打开列表,我看到了一些更新的版本,但可能不是我第一次看到的全部。可能是 NetBeans 8 Beta 中的一个错误。

标签: maven netbeans maven-3


【解决方案1】:

我在 Eclipse 中看到过同样的问题。当 IDE 无法更新其缓存的 Maven 索引副本时,通常会发生这种情况。

快速解决方法是将我知道的最新版本放入 POM 并构建一次项目。然后 IDE 会下载依赖项,从那时起,它就会知道这个版本存在。

更长的修复方法是查看 IDE 的错误日志,找出它无法更新索引文件副本的原因。通常,您需要配置 IDE 以使用正确的 HTTP 代理设置。

【讨论】:

  • 这似乎有效。首先,我让 NetBeans “添加依赖项...”对话框安装旧版本。然后我打开 pom.xml 文件并将版本号编辑为已知的最新版本号。 NetBeans 会立即下载并更新 Projects 浏览器中“依赖项”树下列出的项目。没有解释 NetBeans“添加依赖项”对话框的搜索列表的奇怪行为,但可能是一种有效的解决方法。
【解决方案2】:

Netbeans 索引所有 maven 存储库以查找所有依赖项和版本。这是一项耗时的任务,因此默认情况下它每周启动一次。

如果您想刷新索引,请转到工具 > 选项 > Java > Maven > 索引并点击«Index now»

如果你仍然没有找到你的依赖的最新版本,很可能是这个库还没有上传到仓库。要配置存储库,请转到 Window > Services > Maven Repositories。

文档有点过时,但您可以在此处找到更多信息:http://wiki.netbeans.org/MavenBestPractices#Dependency_management

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 2021-06-26
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多