【问题标题】:Set environment variable before executing maven (In a jenkins build)在执行 maven 之前设置环境变量(在 jenkins 构建中)
【发布时间】:2013-10-10 04:45:57
【问题描述】:

我正在一台机器上设置一个 jenkins 从站,该机器应该构建一个包含一些本机 C 代码的 maven 项目。然而,机器本身被证明是一个问题。 这台机器托管了一个相当老的程序,它使用了很多环境变量,比如 JAVA_HOME,maven 需要这些环境变量才能正常运行。 为了在从机上运行maven,我需要设置这些环境变量,在执行maven之前,或者maven,其他依赖,比如ssh,都不会运行。我不能只是永久更改变量,所以我需要一种在执行 maven 构建之前更改环境变量的方法。

我可以通过在执行 mvn 之前设置环境变量来手动执行构建,构建就像一个魅力。但我需要 jenkins 来自动触发构建。

正如我所见,我需要: 配置jenkins在执行maven前设置环境变量 要么 配置 maven 使用特定值而不是某些环境变量(这样 jenkins 可以处理执行)

非常感谢您的帮助。

【问题讨论】:

    标签: maven jenkins environment-variables slave


    【解决方案1】:

    有很多选择。

    • 配置节点设置环境变量(在节点属性下,勾选“环境变量”)
    • 对于工具,Jenkins 自己设置了必要的环境。在节点配置中,您可以为主配置中配置的工具设置不同的路径(在节点属性下,检查“工具位置”),我相信您不需要插件来拥有此选项。
    • 使用EnvInject pluginSetenv Plugin 已弃用)
    • 使用Envfile Plugin
    • 在手动启动 Maven 之前设置环境变量。您需要在同一个构建步骤中拥有两者。 (最坏的解决方案)
    • 创建仅在该特定节点上有效的 java/maven 配置并在您的工作中使用它。仅当您的作业仅在您的特殊节点上运行而不在其他任何地方运行时,这才有效。

    我建议第一个或第二个选项

    【讨论】:

      【解决方案2】:

      我想 Jenkins 可能支持通过 UI 设置环境变量以进行作业配置。如果没有,您当然可以编写一个脚本来设置您的环境,并让 jenkins 在运行您的构建作业时执行该脚本。

      【讨论】:

      • 是的,Jenkins 支持几种不同的方式来设置环境变量。
      • 感谢@PeterSchuetze 的帮助!
      猜你喜欢
      • 2019-11-26
      • 2021-01-31
      • 2018-04-04
      • 1970-01-01
      • 2021-05-15
      • 2017-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多