2010-10-18 76 views
7

我最近安裝了eclipse 3.6.1和m2eclipse插件,用於我現有的maven版本,但即時通訊遇到了很多問題,試圖使其工作。m2eclipse不會下載maven artifacts

我現有的maven項目可以在命令行中正常工作。

將我的項目樹導入eclipse之後,我運行了其中一個項目的構建。它最終死於此錯誤:

10/18/10 2:03:02 PM PDT:[DEBUG]無法獲取資源'org.apache.maven.wagon:wagon-file:jar:1.0-alpha- (http://repo1.maven.org/maven2)授權失敗:轉移失敗:未通過代理授權

Maven從命令行可以從中央下載沒有問題的東西。
Eclipse能夠從sonatype網站下載m2eclispe插件。
- 基於此,我知道我的代理設置正在工作。

但由於某種原因,eclipse或m2eclipse無法告訴maven正確的設置。

我檢查了帖子here並嘗試刪除* .lastupdated文件,但是這對錯誤沒有影響。

我該如何解決這個問題?

+0

你在eclipse下運行了什麼目標?在命令行中完全相同的目標是否成功? – 2010-10-18 22:52:52

+0

目標?我剛剛從項目上下文菜單 – Jon 2010-10-18 23:27:00

+0

編輯過的文章中選擇了「Build project」,以便清晰起見 – Jon 2010-10-20 18:53:08

回答

2

Eclipse不知道配置到您的操作系統中的代理信息。代理信息在您的系統啓動期間可能來自引導服務器,或者手動配置到您的系統中。我主要使用linux,並且無法解釋如何通過任何風格的Windows機器讀取這些信息。

Maven從命令行了解代理信息。命令行中的Maven可能具有可用於讀取代理信息的shell運行時環境。我猜Eclipse會忽略這個shell運行時環境。

我遇到了這個問題,並解決它如下。要繼續,您需要知道您的代理IP地址,以及您的代理認證信息,如用戶名/密碼。您的網絡或代理管理員應該爲您提供此功能。我用wireshark探聽電線。

順便說一句,eclise的「安裝新軟件」和「檢查更新」也可能不起作用。他們會在這之後。

另外,完成此操作後,您需要手動從本地m2存儲庫中刪除'lastUpdated'文件。我無法找到有關如何使用這些文件的很多信息,但是當您希望下載一個工件時,它們會遇到阻礙。

打開網絡連接的喜好是這樣的:Windows的>首選項 - >常規 - > NetworkConnections

設置爲活動提供者手冊。

單擊HTTP和HTTPS(也許是SOCKS)的複選按鈕。

選擇HTTP行並單擊編輯。

提供主機IP地址,點擊'需要驗證',輸入用戶名和密碼。如果您的代理由Windows域管理,則用戶名將如下所示:DOMAIN \ USERNAME。

對於HTTPS重複。

單擊確定,確定,確定。

去鎮上。

+1

,正如我的原始文章中所述:「安裝新軟件無法工作」 - 否則我將無法安裝m2eclipse插件。但我將代理主機名更改爲http和https的IP地址 - 錯誤是相同的。任何其他想法? – Jon 2010-10-20 18:50:39

1

在代理服務器中發現了這個同樣的eclipse m2問題。

我在首選項/常規/網絡連接中有正確的代理設置。 但這似乎沒有任何幫助。

但是,在我在「settings.xml」中設置了我的代理用戶/密碼之後,所有內容都起作用了。

似乎在首選項下的代理設置對我的情況沒有影響。

+0

好吧 - 我在這裏困惑。如果你的代理設置在設置中。xml是不正確的,你是如何下載任何maven工件來運行你的構建?我的maven settings.xml中的代理設置在從命令行運行時可以很好地下載。 – Jon 2010-11-02 17:00:46

+0

就像我說的,我的行爲完全一樣。命令行模式和m2eclipse下載甚至可以在settings.xml中使用「no」用戶名/密碼。 – lee 2010-11-03 01:58:17

+0

它像一個魅力一直工作,直到一些插件只是不會下載,除非我在settings.xml中設置用戶/密碼。我甚至用wireshark捕獲流量,返回的錯誤是一個407代理認證錯誤,根據IT的基本意思,主要是登錄失敗。 – lee 2010-11-03 02:14:15

1

我有同樣的症狀(「安裝新軟件」工作正常,Maven從命令行工作正常)。我不相信我的代理需要身份驗證 - Eclipse的「網絡連接」頁面中的「Native」提供程序說Auth = false,我的settings.xml在代理配置中有空的usernamepassword元素。

不管怎樣,我想從我的settings.xml代理配置完全移除usernamepassword元素,並刪除​​文件,現在的m2eclipse似乎完全滿意。我的理論是,如果你指定空元素,那麼命令行Maven(2.2.1在我的情況下)不會發送認證信息,所以它可以和我的代理一起工作,而嵌入在m2eclipse中的Maven 3可能會發送auth頭文件,但空白信息被我的代理拒絕。我沒有嗅過交通確認這一切,所以這只是一種預感。即使這是對的,我也不確定誰是錯。

1

我和m2eclipse有同樣的問題。驗證我的項目是使用命令行eclipse(使用'compile'目標)構建的,我也可以使用m2eclipse構建相同的目標(使用Run As> Maven Build ...>)。但是,默認的運行方式> Maven安裝仍然失敗,錯誤代碼407,需要代理驗證,這很奇怪,因爲配置的代理不需要驗證。雖然這個錯誤稍有不同,但問題描述是非常相似的。

現在,當我使用帶有'install'目標的命令行Maven時,m2eclipse默認構建也成功運行。我沒有改變一點配置。更重要的是:一旦我跑了一次,m2eclipse沒有問題的任何額外的依賴??

因此得出結論:在我看來,m2eclipse存在一些缺陷,使得它在初始依賴性下載期間與代理進行通信時表現不同。

我希望這個解決方法也適用於你......