【问题标题】:Hudson/Jenkins Plugin development: how to get environment variables of other pluginHudson/Jenkins 插件开发:如何获取其他插件的环境变量
【发布时间】:2023-10-29 16:04:01
【问题描述】:

我的 Hudson 配置有点旧。我们有一个内部开发的插件,可以查询 Nexus 存储库并设置一些作业参数。该插件是 Java 语言。

我们还使用了已弃用的SetEnv Plugin,我们在其中设置了一堆环境变量。

我们的插件,基本上扩展了 ParameterDefinition 类以在构建作业屏幕中提供一堆选项,然后一个 ParameterValue 类为我们的作业设置环境变量。

我们的参数定义类:

class NexusQueryParameterDefinition extends ParameterDefinition

是否可以从我们的参数定义类访问SetEnv插件中定义的环境变量?

我在定义参数化构建时的问题是,当我按下“立即构建”按钮和按下“构建”按钮开始进程之间的屏幕。此时我不知道如何访问作业实例对象,我相信构建对象只会在提交表单时创建。

这些环境变量保存在config.xml 中,所以如果我可以读取这个文件,我就可以解析这些值。

【问题讨论】:

    标签: java jenkins jenkins-plugins hudson hudson-plugins


    【解决方案1】:

    我建议您探索使用 Environment Injector 插件和 groovy 代码在“设置环境”中为作业配置中的“运行”选项返回地图对象。

    【讨论】:

      【解决方案2】:

      如果不更改 Hudson/Jenkins 代码,这似乎是不可能的。

      这是一个关于它的链接:https://groups.google.com/forum/#!topic/jenkinsci-dev/2hLy525cxsg

      【讨论】:

        【解决方案3】:

        您是否尝试过环境变量是否已注入运行时?表示使用 System.getenv("yourEnvVar"); 访问环境属性;

        如果您想访问已配置的 SetEnv-Plugin 的 Env-Params 以获取迁移路径,这将更加棘手。但是对于迁移 cse,我建议阅读 config.xml 并在插件本身中提取配置。

        【讨论】:

          最近更新 更多