7

我依赖于Hibernate 3.5.3,它只能从新的JBoss Maven 存储库中获得,它托管在SonatypeNexus上,并且所有 URL 都使用 HTTPS 保护。

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

我希望在 global 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

4 回答 4

1

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

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

CNTLM 只是普通的作品(TM)。安装和使用大约需要 15 分钟,从那以后我就不必考虑它了。

我使用过 Artifactory 和 Nexus,它们都具有可比性。我已经读过 Artifactory 预装了大多数流行的 Maven 站点,因此您可能不必花太多时间去摆弄它。(我绝对必须向 Nexus 添加几个第三方存储库)。你可以在这里很好地比较它们。

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

于 2010-07-01T23:08:39.007 回答
1

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

于 2011-01-21T08:55:12.947 回答
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

于 2010-07-12T09:20:40.690 回答
-1

嘿马修斯,我只是想用浏览器点击你在此处发布的 Jboss 存储库 URL,它给了我一个空白页面。jboss存储库的一些谷歌搜索给了我这个url。

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

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

进一步添加,存储库具有休眠核心版本 3.5.1 而不是 3.5.3。猜猜这对您来说应该不是问题。

于 2010-06-25T15:34:22.833 回答