如何通过Ant检索Composer?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过Ant检索Composer?相关的知识,希望对你有一定的参考价值。

我正在尝试让我的Ant脚本为我检索Composer。 Composerphp的依赖经理。 According to the doc需要运行这个命令:“curl -s https://getcomposer.org/installer | php”,它会将Composer.phar下载到我所在的目录中。当从终端运行时,这可以正常工作。

如何为此设置Ant构建文件?到目前为止,我已经为“composerget”目标创建了这个段,但它不保存文件,只在命令shell中输出:

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

任何帮助是极大的赞赏。

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

应该做的伎俩。

管道(|)只能在shell脚本中使用。你把它作为卷曲的论据传递给你。因此,您需要执行一个shell脚本 - 您可以使用bash -c并将该命令作为shell语句传递。

Attribution.

另一答案

这将下载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

以上是关于如何通过Ant检索Composer?的主要内容,如果未能解决你的问题,请参考以下文章

用于从 cloudkit 检索单列的代码模式/片段

NDK: ant 错误 [javah] Exception in thread "main" java.lang.NullPointerException 多种解决办法(代码片段

Azure 机器人微软Azure Bot 编辑器系列 : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorial(代码片段

如何通过 SFTP 从服务器检索文件?

为啥浏览器不在通过 fetch API 检索的 HTML 片段中运行 <script>? [复制]

markdown 如何在ViewPager中检索当前片段