在Jenkins中未获取版本号插件值

在Jenkins中未获取版本号插件值,jenkins,jenkins-pipeline,version-numbering,Jenkins,Jenkins Pipeline,Version Numbering,我在Jenkins为我的项目使用声明性管道语法进行管道作业。我想用 pipeline { agent any environment { VERSION = VersionNumber projectStartDate: '', versionNumberString: '${BUILD_YEAR}.${BUILD_MONTH}.${BUILDS_TODAY}.${BUILD_NUMBER}', versionPrefix: 'v1.', worstResult

我在Jenkins为我的项目使用声明性管道语法进行管道作业。我想用

pipeline {
    agent any

    environment {
        VERSION = VersionNumber projectStartDate: '', versionNumberString: '${BUILD_YEAR}.${BUILD_MONTH}.${BUILDS_TODAY}.${BUILD_NUMBER}', versionPrefix: 'v1.', worstResultForIncrement: 'SUCCESS'
    }

    stages {
        stage('Version Update'){
            steps{
                echo '${VERSION}'
                writeFile file: 'version.ini', text: '%VERSION%'
            }
        }
    }
}
我尝试${VERSION},%VERSION打印版本号,但它总是打印echo中的内容,writeFile步骤中的文本。(例如%版本%)

我可以在侧菜单中看到我使用的格式的版本


在groovy中,使用单引号的字符串将无法获取。您应该改为使用双引号,并在要替换的每个变量前面使用
$
(如果要将
$
保留在字符串中,则需要使用
\
对其进行转义)

对于
writeFile
来说,它是一个管道命令,因此它在jenkins主机上作为groovy运行,而不是在构建节点上运行。这就是为什么您需要这样对待它(双引号和
$
)。 管道{ 任何代理人

    environment {
        VERSION = VersionNumber projectStartDate: '', versionNumberString: "${BUILD_YEAR}.${BUILD_MONTH}.${BUILDS_TODAY}.${BUILD_NUMBER}", versionPrefix: 'v1.', worstResultForIncrement: 'SUCCESS'
    }

    stages {
        stage('Version Update') {
            steps {
                echo "${VERSION}"
                writeFile file: 'version.ini', text: "$VERSION"
            }
        }
    }
}
注意:我没有使用版本号插件,所以我无法测试这段代码