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

Jenkins Pipeline出现durability: command not found错误求助

Jenkinsfile「Ant Initialize」阶段出现durability命令未找到错误的解决思路

问题描述

执行Jenkinsfile的「Ant Initialize」阶段时,控制台报错临时路径下的脚本找不到durability命令,具体报错指向Jenkins生成的script.sh.copy文件。

出错的Jenkinsfile代码

stages {
        stage('Run Install script') {
            steps {
                 sh '''#!/bin/bash -e
                    cd /sapcomm/zip/dxc-eshops/installer
                    bash install.sh -r cx -A initAdminPassword=nimda
                '''
            }
        }
        stage('Build') {
            steps {
                 sh '''#!/bin/bash -e
                    cd /sapcomm/zip/dxc-eshops/hybris/bin/platform
                    . ./setantenv.sh
                    ant clean all
                '''
            }
        }
        stage('Ant Initialize') {
            steps {
                 sh '''#!/bin/bash -e
                    cd /sapcomm/zip/dxc-eshops/hybris/bin/platform
                    ant initialize
                '''
            }
        }
        stage('Run Server') {
            steps {
                 sh '''#!/bin/bash -e
                    cd /sapcomm/zip/dxc-eshops/hybris/bin/platform
                   bash hybrisserver.sh
                '''
            }
        }
    }
}

控制台错误信息

[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Ant Initialize)
[Pipeline] sh
/var/lib/jenkins/workspace/dxceshop@tmp/durable-3524078f/script.sh.copy: line 3: durability: command not found

问题根源

这是Jenkins的已知BUG,由Durability相关组件在生成临时执行脚本时出现语法错误导致,脚本中意外插入了未定义的durability命令。

可行解决方案

  • 调整Jenkins版本:切换到未触发该BUG的LTS稳定版本(如2.332.3及之前),或升级到已修复该问题的后续版本。
  • 修改Pipeline脚本规避:
    给sh步骤添加returnStatus或returnStdout参数,改变脚本生成逻辑,示例如下:
    stage('Ant Initialize') {
        steps {
            script {
                def runStatus = sh(
                    script: '''#!/bin/bash -e
                        cd /sapcomm/zip/dxc-eshops/hybris/bin/platform
                        ant initialize
                    ''',
                    returnStatus: true
                )
                if (runStatus != 0) {
                    error "Ant初始化执行失败,状态码:${runStatus}"
                }
            }
        }
    }
    
  • 禁用Durability插件:若不需要Pipeline高持久化能力,可尝试禁用相关Durability插件(注意:此操作可能影响Pipeline故障恢复能力,需提前评估风险)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:45:18