2010-02-13 73 views
4

我正在嘗試創建一個Confluence插件。我一直在關注這些instructions在Maven中下載資源的SSL問題

但是,當我運行atlas-create-confluence-plugin命令時,maven拋出嘗試從https://m2proxy.atlassian.com/repository/public/獲取資源的SSL錯誤。

alt text http://img46.imageshack.us/img46/6281/mavenssl.jpg

我需要在我的配置更改設置?

系統設置:Windows Vista中,使用Apache Maven的2.1.0(r755702; 2009-03-18 19:10:27 + 0000)

+0

你可以給你的操作系統,Maven版本的一些信息? – 2010-02-13 11:55:01

+0

謝謝我已經添加到主要問題。 – 2010-02-13 12:12:09

+0

您的jdk版本在這裏會很有用:) – 2010-02-13 20:09:42

回答

5

通過SSL訪問存儲庫並不是一個真正的Maven問題(它使用底層的HttpClient和java.net包的末尾類),這是一個純粹的Java問題:遠程存儲庫的證書必須是可信的即此證書的CA根證書必須位於JRE中捆綁的cacerts文件中,或者您需要手動建立信任鏈。

https://m2proxy.atlassian.com/的特殊情況下,證書由DigiCert CA頒發。

奇怪的是,最近的JDK(Java 5u15或更高版本或Java 6u5或更高版本,請參閱Bug ID:6647251)擁有DigiCert的CA根證書。所以,在最近的JDK中,事情應該是正常的(除非你有一個像this issue那樣的黑魔法代理)。

如果您使用的是較舊的JDK和無法升級,從瀏覽器導出證書,使用keytool將其添加到信任存儲和安裝Java來使用這個信任存儲(使用javax.net.ssl.trustStorejavax.net.ssl.trustStorePassword系統屬性) 。有關如何執行此操作的更多詳細信息,請參閱Maven mini guide和/或此blog post

但最簡單的方法是使用最近的JDK。

0

確定這看起來像我的問題是錯誤的。

由於某些原因,maven並未下載maven-confluence-plugin-3.0.5.jar文件。我不得不從URL中手動下載該文件,並將其添加到正確的位置.m2目錄中。

之後,整個過程工作正常。

+0

但maven應該可以通過SSL下載該文件。手動將其安裝到本地存儲庫中始終有效,但爲了避免將來出現問題,您可能需要檢查您的sll配置。 此致敬禮 – 2010-02-13 15:26:13

0

在大多數情況下,Pascal's answer是要走的路。但是,如果你正在構建Maven本身,它不起作用(至少從Maven 3.2.3開始),因爲ant在調用MavenCli類時未能通過必要的javax.net屬性來讓Maven構建Maven的其餘部分。

這個問題的解決方案是修改build.xml文件中的Maven的源目錄的根目錄,而這些行添加到maven-compile目標:

<arg value="-Djavax.net.ssl.trustStore=/path/to/trustStore" /> 
<arg value="-Djavax.net.ssl.trustStorePassword=TrustStorePassword" />