我正在为我们的bitbucket私有存储库项目设置maven存储库(在this blog之后)。
问题是maven 3.1.1无法使用基本身份验证访问私有存储库。它使用登录请求将.pom下载为html。
存储库定义:
<repository>
<id>project-maven-repo</id>
<url>https://bitbucket.org/company/maven-repo/raw/master/repository/</url>
</repository>
来自.m2 / settings.xml的身份验证:
<settings>
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers>
<server>
<id>project-maven-repo</id>
<username>bitbucketuser</username>
<password>password</password>
</server>
</servers>
<proxies/>
<activeProfiles/>
<profiles/>
</settings>
使用curl和基本身份验证访问资源工作得很好。当使用curl而没有登录/密码时,它也返回401响应,因此bitbucket端似乎按预期工作。
curl -v -u bitbucketuser:password https://bitbucket.org/company/maven-repo/raw/master/README
我怀疑它与返回的领域有关。
答案 0 :(得分:5)
尝试了很多选项后,唯一有效的方法是手动准备和发送Basic Auth标头(来自this link)
<settings>
<servers>
<server>
<id>project-maven-repo</id>
<configuration>
<httpHeaders>
<property>
<name>Authorization</name>
<!-- Base64-encoded "bitbucketuser:password" -->
<value>Basic Yml0YnVja2V0dXNlcjpwYXNzd29yZA==</value>
</property>
</httpHeaders>
</configuration>
</server>
</servers>
</settings>
答案 1 :(得分:1)
您需要以不同方式定义存储库
<repository>
<id>your-repo-id</id>
<name>Your Repo Name</name>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>https://api.bitbucket.org/1.0/repositories/yourbitbucketusername/your-bitbucket-repo/raw/your-branch</url>
</repository>