我正在尝试使用私有Github存储库作为Maven存储库,请按照此页面上的说明进行操作:Hosting a Maven Repository in Github
我能够正确部署,我可以看到部署到Github仓库的工件(罐子,poms等)。
什么是无效的是使用此存储库从中提取依赖项。在日志中,我可以看到pom试图下载,但它失败了。
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://raw.githubusercontent.com/ORGANIZATION/mvn-repo/master/ with username=randymay, password=***
Downloading: https://raw.githubusercontent.com/ORGANIZATION/mvn-repo/master/org/hibernate/hibernate/3.2.7.patched/hibernate-3.2.7.patched.pom
[WARNING] The POM for org.hibernate:hibernate:jar:3.2.7.patched is missing, no dependency information available
如果我在curl请求中使用该URL(使用基本身份验证),我可以下载pom。
curl -v https://randymay:*****@raw.githubusercontent.com/ORGANIZATION/mvn-repo/master/org/hibernate/hibernate/3.2.7.patched/hibernate-3.2.7.patched.pom
此外,在日志中,它实际上是在尝试下载jar:
[DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://raw.githubusercontent.com/ORGANIZATION/mvn-repo/master/ with username=randymay, password=***
Downloading: https://raw.githubusercontent.com/ORGANIZATION/mvn-repo/master/org/hibernate/hibernate/3.2.7.patched/hibernate-3.2.7.patched.jar
Could not find artifact org.hibernate:hibernate:jar:3.2.7.patched in github (https://raw.githubusercontent.com/ORGANIZATION/mvn-repo/master/)
这是我的pom.xml的存储库部分:
<repositories>
<!-- Repositories -->
<repository>
<id>github</id>
<url>https://raw.githubusercontent.com/ORGANIZATION/mvn-repo/master/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
</repositories>
这是我在settings.xml中的服务器条目:
<server>
<id>github</id>
<username>randymay</username>
<password>*****</password>
</server>
请注意,在引用的文章中,他们使用了&#39; raw.github.com&#39;域。我一开始就尝试过,并收到同样的问题。当我使用curl连接到该域名时,我收到了永久移动的&#39;错误。我正在使用&#39; raw.githubusercontent.com&#39;因为那是我能够成功使用卷曲的网址。如果这不正确,请告诉我。
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:0)
经过多次调查,我找到了解决方案。我需要提供Base 64编码凭证,以便Apache Wagon将它们放入Github请求的标头中。这就是Github所要求的(可能是防火墙后面的任何Maven存储库)。
请注意,编码字符串是用户名和密码的组合,用冒号分隔。
这是我的settings.xml中的更新条目:
<server>
<id>github</id>
<username>randymay</username>
<password>*****</password>
<configuration>
<httpHeaders>
<property>
<name>Authorization</name>
<!-- Base64-encoded "<username>:<password>" -->
<value>Basic *******************</value>
</property>
</httpHeaders>
</configuration>
</server>