2014-02-24 54 views
1

在NetBeans 8測試版中,當我使用基於Maven 3的項目並單擊「Projects」導航器的「Dependencies」項並選擇「Add Dependency ...」菜單項時,我得到一個用於搜索資料庫的對話框。Maven未列出庫的當前版本

每次輸入「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。這是去年五月發佈的。自那時起,2014年1月28日發佈1.1.0版,2014年2月5日發佈1.1.1版。

爲什麼Maven不提供這些更高版本?

它是一個緩存問題?有沒有辦法強制Netbeans中的對話框更新其可用版本的列表?

+0

這是一個緩存的問題; Netbeans可能會保留一份Maven索引的副本。我在Eclipse中看到了同樣的問題。 –

+0

@AaronDigulla也許是一個緩存問題,但我看不出如何。我在過去的幾周內安裝了NetBeans,而這些產品是在幾個月前發佈的。 –

+0

在Eclipse中,您可以選擇每次啓動時下載索引。我不知道Netbeans是否有類似的選擇。 – khmarbaise

回答

1

我在Eclipse中看到了同樣的問題。當IDE無法更新其Maven索引的緩存副本時,通常會發生這種情況。

一個快速解決方法是將我所知道的最新版本放到POM中並構建一次項目。然後IDE將下載依賴關係,並且從此開始,它將知道該版本存在。

更長的修復方法是查看IDE的錯誤日誌,找出爲什麼它無法更新它的索引文件的副本。通常,您需要將IDE配置爲使用正確的HTTP代理設置。

+0

這似乎是工作。首先,我讓NetBeans「添加依賴...」對話框安裝舊版本。然後我打開* pom。xml *文件並將版本號編輯爲已知的最新編號。 NetBeans會立即下載並更新* Projects *瀏覽器中「Dependencies」樹下列出的項目。沒有解釋NetBeans「添加依賴項」對話框搜索列表的奇怪行爲,但可能是一種有效的解決方法。 –

0

Netbeans索引所有maven存儲庫以查找所有依賴項和版本。這是一項耗時的工作,因此默認情況下每週啓動一次。

如果要刷新該指數的工具>選項> Java的>的Maven>索引,然後點擊«指數目前»

如果你還沒有找到你所依賴的最後一個版本,它可能是圖書館尚未上傳到知識庫。要配置存儲庫,請轉到窗口>服務> Maven存儲庫。

該文檔是有點過時,但你可以找到更多的信息,在這裏:http://wiki.netbeans.org/MavenBestPractices#Dependency_management