无法通过ANT运行phploc

时间:2014-08-30 09:44:40

标签: ant jenkins phploc

我看过这两篇帖子......他们没有帮助:

如果我在shell提示符下运行phploc,它就可以了。所以它必须与我的build.xml文件有关...但我不知道是什么。

<target name="phploc" description="Measure project size using PHPLOC">
  <exec executable="phploc">
    <arg path="${basedir}/../src" />
    <arg value="--log-csv" />  
    <arg value="${basedir}/build/logs/phploc.csv" />    
  </exec>
</target>

这很好用:

C:\projects\project1\build>phploc ../src
phploc 2.0.6 by Sebastian Bergmann.

我的文件夹结构是

c:\projects\project1

      build
          ...
          vendor
             bin
             ...
      src
      tests

C:\项目\ PROJECT1 \构建&GT;蚂蚁     phploc:

BUILD FAILED
C:\projects\project1\build\build.xml:55: Execute failed: java.io.IOException:
 Cannot run program "phploc": CreateProcess error=2, The system cannot find the
file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at java.lang.Runtime.exec(Runtime.java:620)
        at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Jav

更新

C:\>where phploc
INFO: Could not find files for the given pattern(s).

我错过了什么?

1 个答案:

答案 0 :(得分:1)

从聊天讨论中,它出现了与PATH相关的问题。这正是我的想法。

phploc中设置<exec executable="phploc">绝对路径就可以了。它正在从 C:\ projects \ project1 \ build 目录的命令行上工作,因为phploc位于其子目录( vendor \ bin )之一,并且这个子目录已经在PATH变量中。

PATH=C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Calibre2\;C:\xampp\php;C:\ProgramData\ComposerSetup\bin;C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Program Files (x86)\Java;c:\ant\bin;.\vendor\bin

注意:虽然提供了绝对路径,但是使用 relative 路径是一个很好的做法,这样您的项目就是可移植的。在这种情况下,您可以使用 basedir 作为所有相对路径的参考点。