Jenkins的环境变量应该在哪里设置

Jenkins的环境变量应该在哪里设置

我正在使用 Jenkins 在 Linux 上使用 Maven 自动构建应用程序。

我应该在哪里设置环境变量(例如$JAVA_HOME和 附加项目)$PATH以便 Jenkins 可以使用它们?

我尝试了几个不同的地方,但没有成功。我不确定 Jenkins 使用哪种 shell,无论是登录/非登录、交互式还是非交互式。

答案1

这个问题已经在 Stack Overflow 上被问过,你可能想看看那里的答案:如何在Jenkins中设置环境变量?

可以在管理 Jenkins > 配置系统 > 全局属性 > 环境变量中为任何 Jenkins 安装设置全局静态环境变量。

可以在执行器设置中为每个执行器设置环境变量。有一个“环境变量”复选框,勾选后,环境变量配置就会公开。

环境变量也可以为每个作业设置:

答案2

这是全局工具配置的完美场景。在 Jenkins 主页中,单击管理 Jenkins -> 全局工具配置。如果您有默认安装,此页面将允许您添加多个配置以在构建服务器上安装 Maven。

Maven 的全局工具配置

配置完这些工具后,您可以通过添加“调用顶级 Maven 目标”构建步骤在作业中使用它们。如果您为每个作业使用特定的从站/节点,您可以选择应安装在每个服务器上的 Maven。然后,当作业运行时,Jenkins 将自动为您管理安装。

“调用顶级 Maven 目标”构建步骤

特别是对于管道来说,有管道 Maven 集成插件。我还没有使用过它,但从文档看来它应该能够满足您的要求:

通过使用 withMaven 步骤提供 Maven 与 Pipeline Plugin 的集成,该步骤通过调用 sh mvn 或 bat mvn 配置要在管道作业中使用的 Maven 环境。

还有这篇博文,Maven 项目的声明式管道,给出了一个配置 Jenkins 使用 Maven 运行管道的好例子。

答案3

如果您使用配置即代码来配置 Jenkins 主实例,则可以使用globalNodeProperties如下所示https://github.com/jenkinsci/configuration-as-code-plugin/blob/d9171d086fbbf92cb5807da2dd12d6fc43df7a6b/demos/jenkins/jenkins.yaml#L7-L11:

globalNodeProperties:
    - envVars:
        env:
          - key: FOO
            value: BAR

相关内容