2010-06-23 39 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

相关问题