我看过这两篇文章..。他们帮不上忙:
如果我在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
testsc:\projects\project1\build>ant 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).我遗漏了什么?
发布于 2014-08-30 12:45:20
从聊天的讨论来看,这是一个与路径相关的问题。我就是这么想的。
在phploc中设置<exec executable="phploc">的绝对路径就成功了。它在C:\projects\project 1\build目录中的命令行上工作,因为phploc位于它的一个子目录(供应商\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注意:虽然提供绝对路径在这里有效,但是使用相对路径是一个很好的实践,这样您的项目是可移植的。在这种情况下,您可以使用basedir作为所有相关路径的参考点。
https://stackoverflow.com/questions/25581046
复制相似问题