如何用Jenkinsfile传文件到Nexus并覆盖?咨询nexusArtifactUploader及curl方案
问题解答
一、通过nexusArtifactUploader实现覆盖上传
可以实现,需完成以下两步:
- 配置Nexus仓库允许覆盖:登录Nexus管理后台,找到目标仓库
RepositoryName,将其Deployment Policy设置为Allow Redeploy(默认是Disable Redeploy,禁止同版本文件替换)。 - 使用现有配置上传:你当前的
nexusArtifactUploader代码无需额外修改,只要仓库开启了允许重新部署,执行上传时就会自动覆盖同版本的已有文件,最终对应目录只会保留最新上传的那一份文件。
二、通过curl命令完成上传替换
同样可以实现,前提也是目标Nexus仓库已开启Allow Redeploy,示例命令如下:
# 替换变量为实际值后执行 curl -u "${NEXUS_USERNAME}:${NEXUS_PASSWORD}" \ -X PUT \ -T "my-service-${version}.jar" \ "http://my.nexus.address/repository/RepositoryName/com/example/${projectName}/${version}/${projectName}-${version}.jar"
-u:指定Nexus的认证账号密码-X PUT:发送PUT请求(Nexus允许覆盖时,该请求会替换已有文件)-T:指定要上传的本地文件路径- URL路径需匹配Nexus Maven仓库的结构:
仓库地址/组ID路径/项目ID/版本/文件名
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

