Maven访问bitbucket上的私有存储库

时间:2013-11-17 15:22:21

标签: maven bitbucket

我正在为我们的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

我怀疑它与返回的领域有关。

2 个答案:

答案 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>

同时查看http://synergian.github.io/wagon-git/bitbucket.html