如何将路径变量添加到作业shell

时间:2011-09-08 14:14:52

标签: hudson jenkins

我正在设置Jenkins以取代我们当前的TeamCity CI版本。

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

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

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

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

感谢您的时间。

5 个答案:

答案 0 :(得分:5)

我通过在Jenkins作业配置中导出和设置Path来解决此问题,您可以在其中输入shell命令。所以我在执行我的Shell脚本之前设置环境变量,进行处理。

答案 1 :(得分:3)

一些可能的解决方案:

  • 您可以使用绝对路径调用maven
  • 您可以在jenkins系统设置中使用maven实例的绝对路径配置全局环境变量,并在脚本调用中使用它(如果使用内联shell脚本,我不知道这些是否替换为叫做脚本,你必须测试)
  • 您使用maven项目并在jenkins系统设置中配置您的maven实例

ps:如果你想切换到例如,通常{Jen}选择/bin/sh。 bash,您可以在jenkins系统设置中配置它,以防您想要配置全局环境变量。

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

Dags建议的另一个选择是,如果您只使用单个版本的maven,则可以在每个从属服务器上执行;  *添加PATH = $ {PATH}:  * symlink mvn进入/ usr / bin用; sudo ln -s / usr / bin

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

答案 4 :(得分:0)

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

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

在Jenkins中配置maven安装:

  1. 登录jenkins网络控制台
  2. 点击管理Jenkins - >配置系统
  3. 在Maven下,点击“Maven Installations ...”按钮
  4. a。给它一些名字 b。并在MVN_HOME下设置安装maven的路径,例如“/usr/local/apache-maven/apache-maven-3.0.5”
  5. 点击保存按钮
  6. 使用maven目标定义作业

    1. 编辑你的工作
    2. 点击“添加构建步骤”
    3. 在Maven版本上,输入您为maven安装的名称(上面的步骤#4)
    4. 设定一些目标,例如清洁安装