2010-06-23 45 views
7

我對Hibernate有依賴性3.5.3只有我可以使用新的JBoss Maven repository託管在SonatypeNexus上,並且所有URL都使用HTTPS進行保護。如何從企業防火牆後面使用新的JBoss Maven存儲庫?

我可以通過網絡瀏覽器從公司防火牆後面訪問此存儲庫。但Maven無法解決這些文物。

我看到在構建開始以下警告:

[WARNING] Unable to get resource 'org.hibernate:hibernate-core:pom:3.5.3-Final' from repository jboss.org (https://repository.jboss.org/nexus/content/repositories/releases): Error transferring file: repository.jboss.org 

我預計,添加以下全局的settings.xml的部分應該做的伎倆對我來說:

<proxy> 
    <id>http.proxy</id> 
    <active>true</active> 
    <protocol>http</protocol> 
    <username>me</username> 
    <password>private</password> 
    <host>proxy.somecompany.com</password> 
    <port>80</port> 
    <nonProxyHosts>*.somecompany.com</nonProxyHosts> 
</proxy> 
<proxy> 
    <id>https.proxy</id> 
    <active>true</active> 
    <protocol>https</protocol> 
    <username>me</username> 
    <password>private</password> 
    <host>proxy.somecompany.com</password> 
    <port>80</port> <!-- tried 443 too --> 
    <nonProxyHosts>*.somecompany.com</nonProxyHosts> 
</proxy> 

但它不適合我。

在我的pom.xml中,我有以下庫依賴聲明:

<repository> 
    <id>jboss.org</id> 
    <name>JBoss Repository</name> 
    <url>https://repository.jboss.org/nexus/content/repositories/releases</url> 
</repository> 

我不得不使用Maven 2.0.8,但我已經檢查,並沒有Maven的2.2.1工作,要麼。

+0

您使用的是什麼版本的Maven?你也可以運行'mvn -X'來獲得真正的錯誤嗎? – 2010-06-23 15:57:32

+0

@帕斯卡爾 - 我在這裏的黑暗時代。我必須使用Maven 2.0.8! – 2010-06-23 16:14:56

+0

只要它不是Maven 2.0.4。但使用-X運行將有助於理解問題的根本原因。順便說一句,我不認爲你需要第二個代理元素,'protocol'用於配置代理,而不是遠程主機使用的協議。 – 2010-06-23 16:46:56

回答

1

這是固定在最近的Maven的版本(3.0開始-α的東西,不記得確切的問題#)。適用於3.0.3-SNAPSHOT

-1

嘿馬修斯,我只是試圖擊中你在這裏使用瀏覽器發佈在這裏的Jboss存儲庫URL,它給我一個空白頁。爲jboss存儲庫提供了一些Google搜索給了我這個URL。

http://repository.jboss.org/maven2/

我想這應該解決您的問題。它只是一個錯誤的存儲庫URL的問題。

要進一步添加,存儲庫具有hibernate核心版本3.5.1而不是3.5.3。猜猜這不應該是你的問題。

+0

版本庫URL沒有錯,[JBoss現在使用的是Nexus](http://relation.to/Bloggers/JBossMavenRepositoryChanges),Hibernate 3.5.3在「舊」版本庫中不可用。 – 2010-06-25 15:48:56

+1

JBoss已棄用舊的存儲庫URL,並且不會將發佈發佈到舊的存儲庫。我非常依賴當前項目上的JBoss組件,所以Hibernate只是這個問題的一個例子。 – 2010-06-26 19:18:55

1

這將真正歸結到貴公司設置防火牆所做的事情。如果防火牆需要NTLMv2身份驗證,那麼Maven不會單獨這樣做(它應該很快就會工作,但我嘗試了v3 alpha,沒有任何運氣)。

雖然它可能不是你要找的理想的解決方案,我發現,這種事情最好的情況是安裝CNTLM和防火牆(如Sonatype NexusJfrog's Artifactory,或Apache Archiva內的本地倉庫代理。

CNTLM只是普通作品(TM),它花了約15分鐘即可安裝和玩,我還沒有從去想它。

我用Artifactory的和Nexus和他們都是我已經讀過Artifactory預裝了大多數流行的Maven站點,所以你可能不需要這麼做。肯定不得不向Nexus添加幾個第三方回購)。你可以很好地比較他們here

該解決方案的另一個好處是您的構建應該快得多(並且您的團隊會感謝您)。

+0

我們有一個內部存儲庫,但我沒有管理權限。花了他們5天爲我添加JBoss!所以我下一次碰到這個障礙時需要解決方案。 NTLM問題聽起來像是我的問題。我會進一步調查。 – 2010-07-06 11:36:07

0

如果NTLM是問題,並且如果您將Eclipse用於您的項目,那麼您可以嘗試使用以下參數啓動Eclipse。我曾嘗試過這一次,因爲我們的代理訪問eclipse更新站點時遇到問題。

-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient 
-Dhttp.proxyPort=8080 
-Dhttp.proxyHost=<Proxy Host Name> 
-Dhttp.proxyUser=<> 
-Dhttp.proxyPassword=<> 
-Dhttp.nonProxyHosts=localhost 

來源:http://wiki.eclipse.org/ECF_Filetransfer_Support_for_NTLMv2_Proxies

相關問題