2012-11-02 31 views
0

每次我尝试运行构建,我收到了一堆线是这样的:詹金斯在Mac:不能运行程序“pdepend”

/Users/Shared/Jenkins/Home/jobs/dghhtreew/workspace/build.xml:28: 
The following error occurred while executing this line: 
/Users/Shared/Jenkins/Home/jobs/dghhtreew/workspace/build.xml:39: Execute failed: java.io.IOException: Cannot run program "pdepend": error=2, No such file or directory 

下面是相关的部分从我的build.xml,这是自动生成的PHP项目向导:

... 
<target name="parallelTasks" description="Run the pdepend, phpmd, phpcpd, phpcs, phpdoc and phploc tasks in parallel using a maximum of 2 threads."> 
    <parallel threadCount="2"> 
    <sequential> 
    <antcall target="pdepend"/> 
    <antcall target="phpmd"/> 
    </sequential> 
    <antcall target="phpcpd"/> 
    <antcall target="phpcs"/> 
    <antcall target="phpdoc"/> 
    <antcall target="phploc"/> 
    </parallel> 
</target> 
<target name="pdepend" description="Generate jdepend.xml and software metrics charts using PHP_Depend"> 
    <exec executable="pdepend"> 
    <arg line="--jdepend-xml=${basedir}/build/logs/jdepend.xml 
       --jdepend-chart=${basedir}/build/pdepend/dependencies.svg 
       --overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg 
       ${source}" /> 
    </exec> 
</target> 
... 

显然,詹金斯用户无法找到这些命令或东西。当我通过终端詹金斯这样登录:

sudo -s -H -u jenkins 

,并尝试pdepend它按预期工作。但由于某些原因,它在Jenkins服务器上执行时不起作用。我试着在可执行文件行中设置绝对路径,但我得到了相同的结果。我没有搞砸安装或任何东西,我有最新版本(1.488)詹金斯通过mac installer

为什么不能jenkins做什么?

回答

2

这是exec任务的执行路径问题。尝试指定pdepend命令的完整路径。

<exec executable="/complete/path/to/command/pdepend"> 
    .. 

更新

如果仍然不工作检查的pdepend命令的权限,以确保它是由詹金斯用户执行。

另外值得一直接运行pdepend命令时,检查返回代码:

sudo -u jenkins /complete/path/to/command/pdepend || echo non-zero return code 
+0

如前所述上面:“我试图在可执行行设置绝对路径,但我只是得到了同样的结果。” –

+0

@MikeFunk答案已更新 –

0

也许你没有安装的命令,所以对我来说最简单的方法是通过作曲家:

composer global require 'pdepend/pdepend=*' 

如果你没有作曲家,请安装它:

curl -sS https://getcomposer.org/installer | php 

php composer.phar global require 'pdepend/pdepend=*' 

詹金斯让我们来介绍路径变量,你做不需要添加路径

  1. 请点击“管理詹金斯”
  2. 点击配置系统
  3. 查找复选框“环境变量”,并确保检查
  4. 新增: 名称:PATH 价值:$ PATH:/Users/YOUR_USER/.composer/vendor/bin