Jenkins 管道(声明式或脚本式)是否有可能支持像 C 语言中的#include 这样的预处理?

Is it possible for Jenkins pipeline (declarative or scripted) to support preprocessing like #include in C?

我在同一视图中有一堆作业,它们使用相同的声明性管道结构,但以下部分除外:

parameters {
    string(name: 'total_try_count', defaultValue: '1', description: '總的嘗試次數')
    choice(name: 'intermediate_dir', choices: '/var/lib/jenkins-slave/', description: '在放入 NAS 前保存視頻和字幕的目錄')
    booleanParam(name: 'unplanned_download', defaultValue: false, description: '臨時起意的下載?')
    ...
    ...
    choice(name: 're_pattern', choices: '', description: '正則表達式待匹配模式')
    booleanParam(name: 're_remove_spaces', defaultValue: true, description: '刪除文件名中的空格?')
    string(name: 're_new_pattern_prefix', defaultValue: '', description: '正則表達式新模式前綴')
}

是否可以将参数存储在文本文件中,然后像 C/C++ 中的 #include 指令一样将它们包含在管道中?

我的 Jenkins 文件:

#!/usr/bin/env groovy
import hudson.model.*
import hudson.EnvVars

node('whatever') {
    checkout scm
    def options = load 'script.groovy'

    properties([parameters(options.params())])

    println "${params.TEST_PARAM}"

}

我的外部 groovy 文件,script.groovy:

def params() {
    [
            string(defaultValue: 'default', description: '', name: 'TEST_PARAM', trim: true)
    ]
}

return this

输出:

[Pipeline] load
[Pipeline] { (script.groovy)
[Pipeline] }
[Pipeline] // load
[Pipeline] properties
[Pipeline] echo
default
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS