2013-02-07 17 views
7

필자의 Ant 스크립트에서 Composer를 검색하려고합니다. Composer은 PHP를위한 의존성 관리자입니다. According to the doc이 명령을 실행해야합니다 : "curl -s https://getcomposer.org/installer | php"어떤 디렉토리에서 Composer.phar를 다운로드 할 것입니다. 이것은 터미널에서 실행할 때 의도 한대로 동작합니다.Ant를 통해 작성기를 가져 오는 방법은 무엇입니까?

Ant 빌드 파일을 어떻게 설정합니까? 지금까지 나는 "composerget"대상이 세그먼트를 가지고,하지만 내 명령 쉘에서 만 출력을 파일을 저장하지 않습니다이다 :

....  
<target name="composerget" description="Composer update dependencies"> 
    <exec executable="curl"> 
     <arg line="-s" /> 
      <arg line="https://getcomposer.org/installer"/> 
     <arg line="| php" /> 
    </exec> 
    </target> 
.... 

어떤 도움을 크게 appeciated된다.

+0

: 당신이 GNU이 확인 사용하는 경우

<target name="composer" description="Install composer"> <exec executable="wget"> <arg value="-O" /> <arg value="composer-setup.sig" /> <arg value="https://composer.github.io/installer.sig" /> </exec> <exec executable="wget"> <arg value="-O" /> <arg value="composer-setup.php" /> <arg value="https://getcomposer.org/installer" /> </exec> <exec executable="bash"> <arg value="-c" /> <arg value="awk '{print $$0 &quot; composer-setup.php&quot;}' composer-setup.sig | sha384sum --check" /> </exec> <exec executable="php"> <arg value="composer-setup.php" /> </exec> <exec executable="rm"> <arg value="composer-setup.php" /> </exec> <exec executable="rm"> <arg value="composer-setup.sig" /> </exec> <exec executable="mv"> <arg value="composer.phar" /> <arg value="composer" /> </exec> </target> 

, 이것은 동일합니다 가능한 복제품 [파이프로 개미 명령] (http://stackoverflow.com/questions/1187402/ant-run-command-with-pipes) – Mez

답변

8
<target name="composerget" description="Composer update dependencies"> 
    <exec executable="/bin/bash"> 
     <arg value="-c" /> 
     <arg value="curl -s https://getcomposer.org/installer | php" /> 
    </exec> 
</target> 

트릭을해야합니다.

파이프 (|)는 쉘 스크립트에서만 사용할 수 있습니다. 당신은 곱슬 곱슬하게하는 인자로 그것을 전달하고 있습니다. 따라서 bash -c로 할 수있는 쉘 스크립트를 실행하고 쉘 명령문으로 명령을 전달해야합니다.

Attribution.

+1

감사. Ant의 "GET"을 사용하여 끝내 었습니다. https://ant.apache.org/manual/Tasks/get.html 승인 된 것으로 표시하십시오. – Coreus

+0

실행하기 전에 설치 스크립트의 서명을 확인하지 않기 때문에 안전하지 않습니다. –

0

이는 작곡가 설치 프로그램을 다운로드의 서명을 확인하고 설치 프로그램을 실행합니다 :

all: vendor 

vendor: composer composer.json composer.lock 
     ./composer install 

composer: 
     wget -O composer-setup.sig https://composer.github.io/installer.sig 
     wget -O composer-setup.php https://getcomposer.org/installer 
     awk '{print $$0 " composer-setup.php"}' composer-setup.sig | sha384sum --check 
     php composer-setup.php --quiet 
     rm composer-setup.* 
     mv composer.phar composer 
관련 문제