2014-08-30 3 views
0

Я посмотрел на обоих этих постов .. они не помогают:Не удается запустить phploc через ANT

Если я бегу 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 \ сборки> муравей 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 

UPDATE

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

Что мне не хватает?

+0

В командной строке, что вы получаете при вводе: 'где phploc'? Вставьте вывод. – Technext

+0

Вы попробовали команду? – Technext

+0

Извините, просто занят чем-то другим ... Дайте мне около часа ... – Maxcot

ответ

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 

Примечание: Несмотря на то, обеспечивая абсолютный путь работал здесь, но это хорошая практика, чтобы использовать относительный путь, чтобы ваш проект является портативным. В этом случае, вы можете использовать BASEDIR в качестве опорной точки для всех относительных путей.

+0

Спасибо Technext ... высоко ценим. – Maxcot

Смежные вопросы