当前位置: 首页 > 知识库问答 >
问题:

当使用Artifactory插件和凭证插件将Maven工件从Jenkins部署到Artifactory时,如何解决401故障?

罗奇文
2023-03-14

我使用 Jenkins 来构建一个 Maven 项目。

我有Jenkins凭据插件和Jenkins Artifactory插件。

我已在凭据配置中添加了我的Artifactory凭据。

我已将artiFactory插件配置为使用凭据并设置了服务器URL。测试连接工作并报告它已找到服务器。

我的项目的POM在分发管理部分中为repositorysnapshotsRepository指定正确的artiFactory路径。

我的Jenkins项目构建被配置为执行mvn部署

在我的本地版本中,从我的开发计算机,我可以部署到 Artifactory 服务器(我已在设置中配置凭据.xml

但是,在我Jenkins的工作中,我想使用artiFactory插件和Credonals int he Creentials插件。当我构建时,我得到以下

[DEBUG] Using connector WagonRepositoryConnector with priority 0 for http://xxxxx/artifactory/libs-release-local
Uploading: http://xxxxx/artifactory/libs-release-local/xxx/3.01/xxx-3.01.war
Uploading: http://xxxxx/artifactory/libs-release-local/xxx/3.01/xxx-3.01.pom
Notifying upstream projects of job completion
Join notifier requires a CauseAction
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

和以下堆栈跟踪

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project querynator: 
Failed to deploy artifacts: Could not transfer artifact xxx:war:3.01 from/to dwCentral (http://xxxxx/artifactory/libs-release-local): 
Failed to transfer file: http://xxxxx/artifactory/libs-release-local/xxx/3.01/xxx-3.01.war. 
Return code is: 401, ReasonPhrase: .

这向我表明问题出在凭证上,特别是因为我可以从我的dev box(使用settings.xml中的凭证)进行部署,但不能从Jenkins进行部署。

我已尝试部署新版本。我已尝试部署快照。这不是版本问题。

我如何解决这个问题?我如何进一步解决这个问题?

共有2个答案

谈萧迟
2023-03-14

假设您已经正确配置了凭据。如果您已经部署了版本,那么让我们对工件说一次x.y.z。执行命令

mvn deploy

同样,对于同一版本,也会导致

返回代码为:401,原因短语:未经授权。

您可以尝试将版本更新为从未部署过的x. y. a,该作业应该运行良好。

更多来自Maven生命周期基础的文档

部署-在构建环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享。

并假设您了解 Maven 快照到底是什么,为什么我们需要它?并同意这样一个事实,即一旦项目在事物之间共享,就不应该为消费者动态更改,因此不允许同一版本多次部署阶段。

水焱
2023-03-14

在Jenkins中使用Artifactory插件时,不应在主构建任务中使用< code>mvn deploy。它使用Maven Deploy插件,因此将尝试使用存储在settings.xml文件中的凭证。

相反,使用mvn install作为主要构建任务,并设置一个新的构建后任务以将工件部署到存储库。

这允许您定义要使用的服务器、存储库位置和凭据。

 类似资料:
  • 我尝试使用jenkins管道将gradle工件上传到maven存储库。我关注了詹金斯的管道工作 如参考文件所述,应将构建工件部署到工件库。然而,在我的案例中没有部署构建工件。 我已经检查了并发现它是空的。 根据一些提示,我将以下代码放入我的: 然而,前面的没有帮助,仍然没有部署工件。 问题出在哪里?我错过了什么? 感谢您的任何意见。 编辑 我忘了为gradle deployer添加服务器设置。通过

  • 我正在做一个使用Maven 3.0.4的项目。 一个示例项目结构 我们使用artifactory作为存储库管理工具,使用Jenkins作为CI构建服务器。artifactory/Jenkins插件也已安装。 如果我在Jenkins中将一个项目设置为Maven 2/3人力资源模型项目,并添加一个构建后步骤以部署到artifactory,那么一个jar工件就会部署到artifactory。 对模型项目

  • 主要用于:C#项目、nuget包依赖项、MSBuild构建工具(无TFS) 我们正在评估艺术家工厂专业版,詹金斯为CI 我希望看到的是让Jenkins CI使用Artifactory插件从Artifactory获取Nuget包。如果nuget包当前未缓存在Artifactory中,我将从nuget gallery中获取它(https://www.nuget.org)并将它们缓存在Artifacto

  • 我有一个非常基本的Gradle构建文件: 这是通过詹金斯执行的,看起来工作正常: 归档工件:[DefaultPublishArtifact_装饰模块-0.0.post0.dev6 n4c62094-py2.7:egg:egg:null] [buildinfo]属性文件位于“/tmp/buildInfo65481565498521”。财产 : artifactoryPublish 正在将生成描述符部

  • 通过使用Jenkins的阿蒂工厂插件和Gradle,我能够成功地部署到我的阿蒂工厂实例。但是,我无法使用进入Jenkins配置的凭据从同一个存储库解析工件。 以下是,取自Artifactory中Artifactory的“生成构建脚本”功能。 错误: 在本地,解析工件是有效的(等都被解析了,因为我在本地中配置了它们)。但是,构建失败,因为未定义。当然,我可以配置供詹金斯使用(这是可行的),但这应该如

  • 问题内容: 我正在尝试保存构建工件,并通过Jenkins Artifactory插件的上载/下载规范部分将其拉入新的构建。 有没有办法抓住“最新的”构建工件? 我在Artifactory文件规范文档中看到,下载规范中应该有一个“ build”元素,我可以在其中指定“ LATEST”,但这不起作用,只是说“ LATEST”未找到。也许我一开始没有正确地将我的作品发布到Artifactory? 根据这