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

Mar*_*sen 11 environment-variables slave maven jenkins

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

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

正如我所看到的,我需要:在执行maven之前配置jenkins设置环境变量或者配置maven使用特定值而不是某些环境变量(以这种方式jenkins可以处理执行)

非常感谢您的帮助.

Pet*_*tze 16

有很多选择.

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

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