当前位置: 首页 > 面试题库 >

如何在声明管道中处理全局变量?

蔺弘
2023-03-14
问题内容

先前曾问过一个有关如何覆盖环境指令中定义的变量的问题,看来这是不可能的。

我想在一个阶段中设置一个变量,并使其可用于其他阶段。在声明性管道中,似乎唯一的方法是在script {}块中。

例如,我需要在结帐后设置一些变量。因此,在结帐阶段结束时,我有一个script {}块来设置这些var,并且可以在其他阶段访问它们。

这可行,但感觉不对。并且出于可读性考虑,我更愿意在管道的顶部声明这些变量并覆盖它们。因此,这意味着在脚本{}块的开头具有一个“设置变量”阶段,该脚本仅定义了vars-
thats丑陋。

我很确定我在这里缺少明显的功能。声明性管道是否具有全局变量功能,或者我必须使用脚本{}


问题答案:

就像@mkobit所说的那样,您可以在管道块之外将变量定义为全局级别。你有尝试过吗?

def my_var
pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                my_var = 'value1'
            }
        }

        stage('Example2') {
            steps {
                printl(my_var)
            }
        }

    }
}


 类似资料:
  • 问题内容: 如何在JavaScript中声明全局变量? 问题答案: 如果必须在生产代码中生成全局变量(应避免使用),请 始终 明确 声明它们: 虽然可以通过省略来定义全局变量(假设没有同名的局部变量),但这样做会生成 隐式 全局,这是一件不好的事情,并且在 严格模式下 会产生错误。

  • 我在typescript中声明了一个全局变量,类似于:global。test=“something”我尝试这样做,我得到错误属性“test”在类型“Global”上不存在。

  • 问题内容: 我在一个组件(在应用程序中加载的第一个组件)中初始化了翻译对象。所有其他组件都需要相同的对象。我不想在每个组件中重新初始化它。怎么回事?使它可用于窗口范围并没有帮助,因为我需要在方法中使用它。 请提出针对这些问题的通用解决方案,而不是针对国际的解决方案。 问题答案: 为什么不尝试使用Context? 您可以在任何父组件中声明一个全局上下文变量,并且可以在组件树中通过来访问此变量。您只需

  • 问题内容: 我有这样的代码: 有什么方法可以在一处定义全局变量并使所有函数一次访问该变量?不利用更多? 问题答案: 该数组可以代替使用: 从手册: 包含对所有变量的引用的关联数组,这些变量当前在脚本的全局范围内定义。变量名是数组的键。 如果您有一组需要一些公共变量的函数,那么带有属性的类可能是一个不错的选择,而不是全局的:

  • 问题内容: 我正在创建一个需要登录的应用程序。我创建了main和login活动。 在主要活动onCreate方法中,我添加了以下条件: onActivityResult登录表单终止时执行的方法如下所示: 问题是登录表单有时会出现两次(该login()方法被调用两次),而且当电话键盘滑动时,登录表单也会再次出现,我想问题是出在变量上strSessionString。 有谁知道如何设置全局变量以避免在

  • 问题内容: 我想制作一个可以在整个应用程序中访问的自定义对象的全局数组(AppDelegate,ViewController类,TableViewController类等)。我已经研究了一种解决方法,但没有找到答案。我曾尝试将数组设置为公共范围,但是收到了编译器警告,提示当我尝试在其他文件中访问该数组时,出现错误提示 我将如何使该数组可被应用程序中的所有文件全局访问,我将在哪里实例化该数组? 问题