我正在设置Jenkins以取代我们当前的TeamCity CI版本。
我创建了一个自由式软件项目,以便我可以执行shell脚本。 Shell脚本运行mvn命令。
但构建失败抱怨无法找到'mvn'命令。
我认为这是因为Jenkins在不同的shell中运行构建,它在路径上没有Maven。
我的问题是;如何添加路径以便在我的Shell脚本中找到“mvn”?我环顾四周,但无法找到合适的地方。
感谢您的时间。
答案 0 :(得分:5)
我通过在Jenkins作业配置中导出和设置Path来解决此问题,您可以在其中输入shell命令。所以我在执行我的Shell脚本之前设置环境变量,进行处理。
答案 1 :(得分:3)
一些可能的解决方案:
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安装:
使用maven目标定义作业