12

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

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

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

非常感谢您的帮助。

4

2 回答 2

16

有很多选择。

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

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

于 2013-10-03T16:01:51.933 回答
0

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

于 2013-10-03T14:52:02.503 回答