Jenkins使用nexusArtifactUploader上传Zip文件时被自动重命名如何解决?
解决Jenkins流水线上传Nexus保留原文件名问题
问题原因
你遇到的文件名被追加时间戳的情况,是因为nexusArtifactUploader插件在上传SNAPSHOT版本制品时,默认启用了uniqueVersion特性,会自动生成带时间戳的唯一文件名,这是Nexus2对快照版本的标准处理逻辑,但可以通过配置禁用。
解决方案
方案1:修改nexusArtifactUploader插件配置(推荐)
只需在artifacts配置中添加uniqueVersion: false参数,同时确保artifactId与原文件名的前缀一致(你的原文件名是my_project_load_load-0.1.29-SNAPSHOT.zip,所以artifactId应设为my_project_load_load):
nexusArtifactUploader artifacts: [[ artifactId: 'my_project_load_load', classifier: '', file: '/apps/external/5/jenkins-node-home/workspace/my_project_load_load-0.1.29-SNAPSHOT.zip', type: 'zip', uniqueVersion: false ]], credentialsId: 'Aiman_Sarosh_cred', groupId: 'com.group.id', nexusUrl: 'nexus.com/nexus', nexusVersion: 'nexus2', protocol: 'https', repository: 'ict-snapshots', version: '0.1.29-SNAPSHOT'
该参数会禁用插件自动生成时间戳的逻辑,上传后的文件名将与原文件一致。
方案2:改用Maven命令手动上传(兼容性更强)
如果插件版本不支持uniqueVersion参数,可以直接用mvn deploy:deploy-file命令上传,完全控制文件名:
sh ''' mvn deploy:deploy-file \ -DgroupId=com.group.id \ -DartifactId=my_project_load_load \ -Dversion=0.1.29-SNAPSHOT \ -Dpackaging=zip \ -Dfile=/apps/external/5/jenkins-node-home/workspace/my_project_load_load-0.1.29-SNAPSHOT.zip \ -DrepositoryId=ict-snapshots \ -Durl=https://nexus.com/nexus/content/repositories/ict-snapshots \ -DuniqueVersion=false '''
注意事项:
- 确保Jenkins节点已安装Maven
- 在Maven的
settings.xml中配置对应repositoryId=ict-snapshots的服务器凭证(用户名+密码),避免明文传递敏感信息
额外检查
确认Nexus的ict-snapshots仓库配置允许覆盖快照制品(Nexus2默认快照仓库允许覆盖,若需重复上传同一文件名需保证此配置开启)。
内容的提问来源于stack exchange,提问作者aiman
相关产品推荐
相关产品推荐

