25

我有一个位于基本身份验证后面的 Artifactory 存储库。我将如何配置 settings.xml 以允许访问?

<mirrors>
    <mirror>
        <id>artifactory</id>
        <mirrorOf>*</mirrorOf>
        <url>https://myserver.example.com/artifactory/repo</url>
        <name>Artifactory</name>
    </mirror>
</mirrors>
<servers>
    <!--
        This server configuration gives your personal username/password for
        artifactory. Note that the server id must match that given in the
        mirrors section.
    -->
    <server>
        <id>Artifactory</id>
        <username>someArtifactoryUser</username>
        <password>someArtifactoryPassword</password>
    </server>

所以服务器标签是人工用户的用户凭据,但我还需要提供另一个用户/密码来通过基本身份验证。我会把它放在哪里?!?

4

4 回答 4

17

用户名和密码按照您的设置进入服务器设置。我认为您的问题是您已通过其名称(A rtifactory)而不是其 ID(a rtifactory)指定了服务器。

我建议您将服务器设置放在用户设置中,而不是全局设置中。您也可以在 Maven 2.1.0+ 中加密密码,详情请参阅迷你指南

更新:您使用的是哪个版本的 Artifactory?有一个讨论和相应的问题,基本身份验证失败。这显然已在 2.0.7 和 2.1.0 中修复。

从讨论中,似乎一种解决方法是通过命令行传递属性,例如

-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080 -Dproxy.username=... -Dhttp.password=... 

更新:要让您的 Maven 安装通过防火墙连接,您需要配置 settings.xml 的代理部分,请参阅此问题以获取有关这样做的一些指示。


更新 2:您可以在服务器设置中设置其他属性,请参阅此博客了解一些背景信息。我没有机会对此进行测试,但是从博客和相关的http wagon javadoc看来,您可以在服务器设置上设置 authenticationInfo,如下所示:

<server>  
  <id>Artifactory</id>
  <username>someArtifactoryUser</username>
  <password>someArtifactoryPassword</password>
  <configuration>  
    <authenticationInfo>
      <userName>auth-user</userName>
      <password>auth-pass</password>
    </authenticationInfo>
  </configuration>  
</server> 
于 2009-08-15T06:49:05.863 回答
5

我能够使用以下配置来启用 HTTP 基本身份验证 - 通过手动编写必要的 HTTP 标头。在我的情况下,我使用它来访问我的Go 服务器上的构建工件,作为一个穷人的临时存储库。

    <server>
        <id>go</id>
        <configuration>
            <httpHeaders>
                <property>
                    <name>Authorization</name>
                    <!-- Base64-encoded "guest:guest" -->
                    <value>Basic Z3Vlc3Q6Z3Vlc3Q=</value>
                </property>
            </httpHeaders>
        </configuration>
    </server>
于 2012-06-11T18:11:40.077 回答
3

使用明文密码解决问题的提示:

  • 访问并登录 Artifactory。
  • 登录后,单击屏幕右上角的用户名。
  • 输入您的密码,然后在 em Unlockbutton 中输入密码,启用加密密码。
  • 复制将显示在屏幕下方的标签并将其粘贴到 settings.xml 文件中。如果您更喜欢只复制密码,请确保让它与下面显示的标记完全一致,包括密码开头的“\”。
  • 请记住在您的 POM.xml 中使用定义在标签中的服务器 id 来调整标签
  • 单击更新按钮并准备就绪!检查下一个项目发布时是否一切都会顺利进行。
于 2013-03-08T00:48:10.063 回答
0

大多数情况下发生这种情况是由于以下原因

  • 在 ~/.m2/conf 或 ~/.m2 目录中找不到 Settings.xml
  • Settings.xml 不包含正确的凭据UsernameAPI Key访问 Artifactory
  • 无法使用给定凭据访问 Settings.xml 中提到的 Artifactory

您可以查看 Maven 在哪些目录中查找的内容...使用 -e -X 选项运行将显示这些详细信息

有时 Settings.xml 文件可能放在不同的目录中,因此当您在本地构建时,maven 在 ~/.m2 或 ~/.m2/conf 目录中找不到它。例如,如果项目使用 buildkite,它可能位于 buildkite 在构建过程中可以访问的目录中。在这种情况下,只需将相同的 Settings.xml 文件复制到 ~/.m2 中。

在此处输入图像描述

要查找 aritifactory,请使用您的电子邮件/密码登录 url,然后转到配置文件并找到用户名和 API 密钥,如图片中所示。

在此处输入图像描述

然后在 Settings.xml 中检查存储库是否正确

在此处输入图像描述

于 2021-05-06T11:39:32.480 回答