You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins构建后上传Nexus报错:order-2.0.0.war不存在求助

解决方案:Nexus上传时文件不存在问题排查与修复

嘿,我一眼就看到问题所在了——这就是个典型的文件名拼写不一致导致的错误!

问题根源分析

从你的Maven构建日志能明确看到,成功生成的war文件是orders-2.0.0.war(注意文件名里的orders是带s的),但你Jenkinsfile里配置的上传路径写的是order-${mavenPom.version}.war,少了末尾的s,插件自然找不到对应文件啦。

修复步骤

直接修改Jenkinsfile里的文件名配置,把order改成orders即可:

pipeline{
    agent any
    tools{
        maven 'maven3'
    }
    stages{
        stage('Build'){
            steps{
                sh 'mvn clean package'
            }
        }
        stage('upload artifacts'){
            steps{
                script{
                    def mavenPom = readMavenPom file: 'pom.xml'
                    nexusArtifactUploader artifacts: [
                        // 修正文件名拼写,和构建生成的文件保持一致
                        [ artifactId: 'orders', classifier: '', file: "/var/lib/jenkins/workspace/Declerative_pipeline/target/orders-${mavenPom.version}.war", type: 'war' ]
                    ], credentialsId: 'Nexusnir', groupId: 'in.javahome', nexusUrl: '13.232.6.115:8081', nexusVersion: 'nexus3', protocol: 'http', repository: 'Declarative_Pipeline', version: "${mavenPom.version}"
                }
            }
        }
    }
}

额外优化建议

为了避免以后再出现这类手动拼写错误,你可以利用mavenPom对象的artifactId属性动态拼接文件名,这样就能和pom.xml里的配置完全同步:

file: "/var/lib/jenkins/workspace/Declerative_pipeline/target/${mavenPom.artifactId}-${mavenPom.version}.war"

哪怕以后pom里的artifactId修改了,Jenkinsfile也能自动匹配生成的文件名,省心又靠谱。

内容的提问来源于stack exchange,提问作者Nirmala Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:52:29