问题 在执行maven之前设置环境变量(在jenkins构建中)


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

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

我认为我需要: 在执行maven之前配置jenkins以设置环境变量 要么 配置maven使用特定值而不是某些环境变量(以这种方式jenkins可以处理执行)

非常感谢您的帮助。


7652
2017-10-03 13:05


起源



答案:


有很多选择。

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

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


16
2017-10-03 16:01





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


0
2017-10-03 14:52



是的,Jenkins支持几种不同的方法来设置环境变量。 - Peter Schuetze
感谢您帮助@PeterSchuetze! - chad


答案:


有很多选择。

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

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


16
2017-10-03 16:01





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


0
2017-10-03 14:52



是的,Jenkins支持几种不同的方法来设置环境变量。 - Peter Schuetze
感谢您帮助@PeterSchuetze! - chad