密码保护的jenkins maven存储库服务器 - 从maven访问

时间:2016-03-01 20:51:19

标签: maven authentication jenkins repository

我有一个带有Jenkins Maven Repository Server插件的密码保护的jenkins服务器。我的问题是,因为它受密码保护,我无法从maven(ContaisAnyFilter

中访问/ plugin / repository / everything / repo

我尝试了什么:
- Putting the server credentials in the .m2/settings.xml
- 基本身份验证:Could not transfer metadata <metadata> from/to <repo-name> (http://ci.mydomain.com/plugin/repository/everything/): Access denied to: <repo>/<identifier> , ReasonPhrase:Forbidden.
- 没有任何身份验证

没人工作......

任何帮助将不胜感激。

编辑:

我的settings.xml:

http://<user>:<password>@ci.mydomain.com/<repo>

和我的pom.xml

<settings>
  <servers>
      <server>
        <id>test-ci</id>
        <username>jenkins</username>
        <password>password</password>
    </server>
  </servers>
</settings>

2 个答案:

答案 0 :(得分:1)

今天在这个问题上挣扎了几个小时,终于找到了答案。

首先,要使用HTTP基本身份验证,您需要提供用户和 API令牌作为密码。你可以在&#34; Manage Jenkins&#34; - &GT; &#34;管理用户&#34; - &GT; &#34;编辑用户&#34; (用户旁边的设置图标) - &gt; &#34;显示API令牌&#34;。

其次,Jenkins正在使用抢先身份验证,这意味着没有HTTP身份验证协商,但您需要立即在第一个请求中发送凭据。您可以在此处阅读:https://wiki.jenkins.io/display/JENKINS/Authenticating+scripted+clients

要相应地配置Maven存储库,请确保使用以下服务器配置:

<server>
    <id>test-ci</id>
    <username>YOUR_USER</username>
    <password>YOUR_API_TOKEN</password>
    <configuration>
        <httpConfiguration>
            <all>
                <usePreemptive>true</usePreemptive>
            </all>
        </httpConfiguration>
    </configuration>
</server>

这应该有效。我希望我可以帮助你:)。

答案 1 :(得分:0)

你应该注意Jenkins Maven Repository Server不能作为Maven Repository执行,所以如果这是你需要的(Maven回购) - 这个Jenkins插件将无济于事。

我建议阅读Maven Repos;从你写的内容我认为内部存储库(例如NexusArtifactory)可能是好的。 Maven默认从Maven Central下载JAR,因此您不必(也不应该)下载所有源并构建它们。