如何在企业防火墙后面使用新的JBoss Maven存储库?

时间:2010-06-23 14:35:36

标签: java maven-2 jboss https nexus

我依赖于Hibernate 3.5.3,只有我JBoss Maven repository Sonatype托管的Nexus才能使用,所有网址都是使用HTTPS保护。

我可以通过网络浏览器从公司防火墙后面访问此存储库。但是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上运行。

4 个答案:

答案 0 :(得分:1)

这将真正归结为贵公司为设置防火墙所做的工作。如果防火墙需要NTLMv2身份验证,那么Maven将不会单独执行此操作(它应该很快就会工作,但我尝试使用v3 alpha而没有任何运气)。

虽然它可能不是您正在寻找的理想解决方案,但我发现此类事情的最佳情况是在防火墙内安装CNTLM和本地存储库代理(例如{{3} },Sonatype NexusJfrog's Artifactory

CNTLM just plain works(TM)。安装和玩游戏花了大约15分钟,我从此不必考虑它。

我使用过Artifactory和Nexus,它们都非常具有可比性。我已经读过Artifactory预装了大多数流行的Maven网站,所以你可能不必像它那样摆弄它。 (我肯定不得不为Nexus增加几个第三方回购)。你可以很好地比较它们Apache Archiva

此解决方案的另一个好处是您的构建应该明显更快(并且您的团队会感谢您)。

答案 1 :(得分:1)

这是在最近的Maven版本中修复的(从3.0-alpha开始,不记得确切的问题#)。适用于3.0.3-SNAPSHOT

答案 2 :(得分: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

答案 3 :(得分:-1)

嘿Mathews,我只是试图点击你在这里使用浏览器发布的Jboss存储库URL,它给我一个空白页面。 jboss存储库的一些谷歌搜索给了我这个网址。

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

我想这应该可以解决你的问题。它只是存储库URL错误的问题。

为了进一步增加,存储库具有hibernate核心版本3.5.1而不是3.5.3。这对你来说不应该是一个问题。