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

时间:2013-10-03 13:05:27

标签: maven jenkins environment-variables slave

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

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

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

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:16)

有很多选择。

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

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

答案 1 :(得分:0)

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

相关问题