Maven 2 访问需要基本身份验证的Artifactory/Maven Repo
我有一个基于基本身份验证的人工回购协议。如何配置settings.xml以允许访问Maven 2 访问需要基本身份验证的Artifactory/Maven Repo,maven-2,basic-authentication,artifactory,Maven 2,Basic Authentication,Artifactory,我有一个基于基本身份验证的人工回购协议。如何配置settings.xml以允许访问 <mirrors> <mirror> <id>artifactory</id> <mirrorOf>*</mirrorOf> <url>https://myserver.example.com/artifactory/repo</url> <
<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>
人工制品
*
https://myserver.example.com/artifactory/repo
人工制品
人工制品
某个人工用户
someArtifactoryPassword
因此,server标记是artifactory用户的用户凭据,但我还需要提供另一个用户/密码以通过基本身份验证。我该把它放在哪里 用户名和密码会在服务器设置中显示。我认为您的问题在于,您是通过其名称(Artifactory)而不是其id(Artifactory)来指定服务器的 我建议您将服务器设置放在用户设置中,而不是全局设置中。您还可以在Maven 2.1.0+中加密密码,有关详细信息,请参阅 更新:您使用的是什么版本的Artifactory?基本身份验证失败的原因是多方面的。这显然已在2.0.7和2.1.0中修复 从讨论中可以看出,a是通过命令行传递属性的,例如
-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080 -Dproxy.username=... -Dhttp.password=...
更新:要让您的Maven安装通过防火墙连接,您需要配置settings.xml的proxy部分,请参阅此部分以获取有关如何进行此操作的一些提示
Update2:您可以在服务器设置中设置其他属性,请参阅此了解一些背景信息。我还没有机会对此进行测试,但从博客和相关内容来看,您似乎可以在服务器设置上设置authenticationInfo,如下所示:
<server>
<id>Artifactory</id>
<username>someArtifactoryUser</username>
<password>someArtifactoryPassword</password>
<configuration>
<authenticationInfo>
<userName>auth-user</userName>
<password>auth-pass</password>
</authenticationInfo>
</configuration>
</server>
人工制品
某个人工用户
someArtifactoryPassword
授权用户
授权通行证
我能够使用以下配置启用HTTP基本身份验证-通过手动写入。在我的情况下,我使用它作为穷人的暂存存储库来访问我计算机上的构建工件
<server>
<id>go</id>
<configuration>
<httpHeaders>
<property>
<name>Authorization</name>
<!-- Base64-encoded "guest:guest" -->
<value>Basic Z3Vlc3Q6Z3Vlc3Q=</value>
</property>
</httpHeaders>
</configuration>
</server>
去
授权
基本Z3Vlc3Q6Z3Vlc3Q=
解决明文密码问题的提示:
- 访问并登录到Artifactory
- 登录后,单击屏幕右上角的用户名
- 在em Unlockbutton中输入密码,然后单击clique,启用加密密码
- 复制将显示在屏幕下部的标记,并将其粘贴到settings.xml文件中。如果您希望只复制密码,请确保它与下面显示的标记完全相同,包括密码开头的“\”
- 记住在POM.xml中使用服务器id调整标记,该id定义在标记中
- 点击更新按钮并准备好!在下一个项目发布时检查是否一切都会顺利进行
- 在~/.m2/conf或~/.m2目录中找不到Settings.xml
- Settings.xml不包含访问工件的正确凭据
或用户名
API密钥
- 无法使用给定凭据访问Settings.xml中提到的Artifactory
感谢Maven提供的加密提示。。。不过,名称/标识冲突不是问题所在。问题仍然是,我有两组凭据要使用。代理设置可能适用于配置我的Maven以通过服务器。我试着把它们放在合适的位置,但运气不好。您上面提到的问题似乎是关于让Artifactory通过防火墙进行通信。在我的例子中,我试图让Maven与位于basic auth后面的人工制品进行通信。我将继续尝试代理设置,并发布任何更新。谢谢。对不起,我以为我已经发布了一个到代理迷你指南的链接,再次看我的答案,似乎没有。如果在settings.xml中配置代理设置,Maven就可以跳出防火墙。但是,通过防火墙意味着什么呢?(听起来不是很密集)。在我的例子中,我的本地框中有Maven,而Artifactory位于“myserver.example.com”上的https上。使用我的浏览器进行测试时,我可以在“myserver.example.com”上看到JAR URL,但基本的身份验证登录对我提出了挑战。实际上有一个防火墙,但我通过了本地箱上的VPN客户端。我知道这一点,因为我可以用浏览器手动获取JAR。如果你在浏览器中查看,你会看到你是否正在使用代理连接到网络(在IE的工具->互联网选项…->连接->局域网设置->代理服务器和Firefox的工具->选项->高级->网络设置…)。如果您使用的是代理,则需要为代理主机和端口配置具有相同值的Maven代理设置,用户名和密码将是您的域用户和密码。当密码为空时,常规方式(不带配置元素的用户名和密码)似乎不起作用,这确实有效!