8

Ant スクリプトに Composer を取得させようとしています。Composerは、PHP の依存関係マネージャーです。 ドキュメントによると、「curl -s https://getcomposer.org/installer | php」というコマンドを実行する必要があります。これにより、Composer.phar が現在のディレクトリにダウンロードされます。これは、ターミナルから実行する場合に意図したとおりに機能します。 .

このために 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>
....

どんな助けでも大歓迎です。

4

2 に答える 2

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>

トリックを行う必要があります。

パイプ (|) は、シェル スクリプトでのみ使用できます。それを引数としてcurlに渡しています。そのため、シェル スクリプトを実行する必要があります。これは、bash -c で実行でき、コマンドをシェル ステートメントとして渡すことができます。

帰属。

于 2013-02-07T12:53:00.343 に答える
0

これにより、Composer インストーラーがダウンロードされ、その署名が検証され、インストーラーが実行されます。

    <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>

GNU Make を使用している場合、これは同等です。

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
于 2017-11-17T05:23:36.937 に答える