我看过这两篇帖子......他们没有帮助:
如果我在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).
我错过了什么?
答案 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 作为所有相对路径的参考点。