2016-07-25 43 views
1

Phing似乎無法使用標籤/命令運行Composer。它似乎在當前目錄中查找composer.phar。由於它沒有執行composer.phar作爲命令,而是將字符串'composer.phar'傳遞給php二進制文件,因此無法使用系統路徑查找composer.phar(除非我錯了?)Phing無法在MAMP Pro上找到composer.phar,OSX

如何讓Phing正確運行作曲者而不必明確告訴它composer.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臨上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命令應該能夠工作,而無需在構建文件中指定composer.phar的完整路徑。

0

如果您向作​​曲家標籤添加空的php屬性,只要作曲家在您的路徑中,它就應該正確運行。

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