2016-07-25 4 views
1

Phing, похоже, не умеет запускать Composer, используя тег/команду. Кажется, он ищет композитор.phar в текущем каталоге. Так как он не выполняет команду composer.phar как команду и вместо этого передаёт строку «composer.phar» в двоичный файл php, он не может использовать системный путь для поиска композитора.phar (если я не ошибаюсь?)Phing не может найти композитор.phar на MAMP Pro, OSX

Как заставить Phing запускать композитор правильно, не указывая явным образом, где находится композитор.phar? Я не хочу этого делать, потому что этот скрипт сборки должен работать в любой системе, в которой установлены Composer и Phing.

Мой проект имеет build.xml файл:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="my-awesome-app" default="build" basedir="."> 
    <target name="build"> 
     <composer command="install"></composer> 
    </target> 
</project> 

Я бегу PHP через MAMP Pro на OSX, так что все связанные с PHP скрипты/бинарные файлы в этом каталоге:

/Applications/MAMP/bin/php/php7.0.0/bin 

# ls -al /Applications/MAMP/bin/php/php7.0.0/bin 
total 120544 
drwxrwxr-x 18 eric admin  612 25 Jul 10:14 . 
drwxrwxr-x 8 eric admin  272 12 Jul 09:46 .. 
-rwxr-xr-x 1 eric admin 1705349 14 Jul 19:40 composer 
lrwxr-xr-x 1 eric admin   8 25 Jul 10:14 composer.phar -> composer 
-rwxrwxr-x 1 eric admin  942 9 Dec 2015 pear 
-rwxrwxr-x 1 eric admin  963 9 Dec 2015 peardev 
-rwxrwxr-x 1 eric admin  879 9 Dec 2015 pecl 
lrwxr-xr-x 1 eric admin   9 15 Dec 2015 phar -> phar.phar 
-rwxrwxr-x 1 eric admin  14854 9 Dec 2015 phar.phar 
-rwxr-xr-x 1 eric admin  797 25 Jul 09:12 phing 
-rwxrwxr-x 1 eric admin 18944064 9 Dec 2015 php 
-rwxrwxr-x 1 eric admin 18850440 9 Dec 2015 php-cgi 
-rwxrwxr-x 1 eric admin  4126 9 Dec 2015 php-config 
-rwxrwxr-x 1 eric admin 19149192 9 Dec 2015 phpdbg 
-rwxrwxr-x 1 eric admin  4627 9 Dec 2015 phpize 
lrwxr-xr-x 1 eric admin  12 13 Jul 23:29 phpunit -> phpunit.phar 
[email protected] 1 eric staff 2988429 13 Jul 23:28 phpunit.phar 

результат выполнения Phing является:

# phing 
Buildfile: /Users/eric/Development/php/phpstorm/my-awesome-app/build.xml 

my-awesome-app > build: 

[composer] executing /Applications/MAMP/bin/php/php7.0.0/bin/php composer.phar install 

BUILD FAILED 
/Users/eric/Development/php/phpstorm/my-awesome-app/build.xml:4:8: Composer binary not found, path is "composer.phar" 
Total time: 0.0980 seconds 

ответ

0

Я использовал EXEC декларацию как работа вокруг:

<exec command="composer install" /> 

Это будет использовать системный путь для поиска сценария/phar композитора (я связал композитор с composer.phar и сделал его исполняемым.

Я не буду отмечать этот ответ как выбранный ответ, так как считаю, что встроенная команда композитора должна работать без указания полного пути к composer.phar в файле сборки.

0

Если вы добавляете пустой атрибут php к тегу композитора, он должен работать правильно, пока композитор находится на вашем пути.

<composer php="" composer="composer" command="install" />