我们已使用Google Cloud点击部署来设置Artifactory。
我添加了settings.xml文件:
<servers>
<server>
<username>deployer</username>
<password>hello</password>
<id>company-central</id>
</server>
</servers>
我已将以下内容添加到pom.xml中:
<distributionManagement>
<repository>
<id>company-central</id>
<name>company-central</name>
<url>http://ourURL/artifactory/libs-release-local</url>
</repository>
</distributionManagement>
当我运行 mvn deploy 时,我收到以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project auth0test:
Failed to deploy artifacts: ... Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]
查看神器日志,请求以匿名方式发送:
2016-11-08 11:40:49,035 [DENIED DEPLOY] libs-release-local:/auth0test-1.0.jar for anonymous /.
没有后续请求与&#39;部署者&#39;进行身份验证。用户。 Artifactory已禁用匿名访问,并且匿名用户已删除其所有权限。
从命令行强制凭据时,这可以:
mvn deploy:deploy-file
-Durl=http://deployer:hello@ourURL/artifactory/libs-release-local
-DpomFile=pom.xml
-DrepositoryId=company-central
-Dfile=target/auth0test-1.0.jar
这是Artifactory或Maven的错误吗?
由于
答案 0 :(得分:0)
Maven的第一个请求确实是匿名的,这是出于安全原因而做的常见做法 - 如果不需要,则不会将您的凭据透露给服务器。
此时,Artifactory会识别出这是一个匿名请求,并且没有足够的权限,因此返回401状态。
收到401后,Maven应响应挑战并使用适当的凭据重新发送请求。这是我认为不能正常工作的步骤 使用调试信息运行Maven可能会显示更多详细信息。