Hudson运行的代码在命令行上找不到可执行文件

时间:2020-03-06 14:45:37  来源:igfitidea点击:

我正在哈德森(Hudson)建立我的第一份工作,但遇到了一些问题。该作业监视两个存储库,一个存储库包含我们的数据库安装文件,另一个存储库用于验证和测试数据库安装文件的一些代码。

运行的部分代码将使用psql命令行工具和Runtime.exec()将经过验证的安装文件扔到PostgreSQL。这段代码可以在我的机器上正常运行,但是当Hudson(在不同的机器上)执行它时,出现以下错误:

java.io.IOException: Cannot run program "psql": CreateProcess error=2, The system cannot find the file specified

psql.exe在路径上,我可以在Hudson执行代码的同一位置在命令行中键入整个内容来执行它。打算传递给psql的文件存在。

有任何想法吗?

解决方案

我发现启动hudson或者slave时,需要在路径中包含该程序。尽管有能力在hudson中设置路径,但它似乎不起作用。我们也可以在命令中放置完整路径,从安全角度来看,这确实是一个好主意。