2011-09-08 52 views
11

我正在设置Jenkins以取代我们当前的TeamCity CI版本。如何将路径变量添加到作业shell中

我已经创建了一个自由风格的软件项目,以便我可以执行一个shell脚本。 Shell脚本运行mvn命令。

但构建失败,抱怨无法找到'mvn'命令。

我认为这是因为詹金斯在不同的shell中运行构建,在其路径上没有Maven。

我的问题是;如何添加路径,以便在shell脚本中找到“mvn”?我环顾四周,但无法找到正确的地方。

谢谢你的时间。

回答

5

我通过在Jenkins Job配置中导出和设置Path来解决这个问题,您可以在其中输入shell命令。所以我在执行我的Shell脚本之前设置了环境变量,作为一种享受。

3

一些可能的解决方案:

  • 您可以致电行家绝对路径
  • 您可以配置在您的maven实例的绝对路径詹金斯系统设置一个全球性的环境变量,并在使用这个你脚本调用(如果使用内联shell脚本,我不知道这些脚本是否替换为被调用的脚本,则必须测试)
  • 您使用maven项目并在jenkins系统设置中配置maven实例

ps .:通常/bin/sh是从詹金斯选择,如果你想切换到例如。 bash,你可以在jenkins系统设置中配置它,以防你想配置全局环境变量。

0

Dags建议的另一个选择是,如果您只使用单一版本的maven,则可以在每个从属服务器上执行; * add PATH = $ {PATH}: *将mvn符号链接到/ usr/bin中; sudo ln -s/usr/bin

我现在不在詹金斯盒子,但是如果你愿意的话,我可以找到更详细的例子。

0

詹金斯默认使用sh而不是bash。 这是我第一次定义一个jenkins maven作业,并且我也遵循soem常规maven指令(用于从命令行运行...),并试图用M2_HOME,M2,PATH更新〜/ .bashrc,因为詹金斯使用sh而不是bash。然后我发现詹金斯有一种更简单更好的方法。

安装maven之后,我应该在jenkins中配置我的maven安装。

要配置Maven安装在詹金斯:

  1. 登录詹金斯Web控制台
  2. 点击管理詹金斯 - >配置系统
  3. 在Maven的,点击“Maven的安装。 ..“按钮
  4. a。给它起一个名字 b。和MVN_HOME下设置路径到安装行家,例如“/usr/local/apache-maven/apache-maven-3.0.5”
  5. 点击保存按钮

定义与作业Maven的目标

  1. 编辑你的工作
  2. 点击Maven版本 “添加构建步骤”
  3. ,输入你给你的Maven安装的名称(步骤#4以上)
  4. 设置一些目标,例如干净的安装
1

您可以使用envInject plugin。它非常强大。

我用它来安装rbenv。它可以将环境变量注入到当前作业中。

相关问题