Composer找不到配置文件 - 在Windows上使用Jenkins

问题描述 投票:0回答:1

我有一个试图执行Composer install的Ant构建脚本但是在通过Jenkins执行时我收到此错误:

     [exec] Composer could not find the config file: C:\ProgramData\ComposerSetup\bin
     [exec] To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
     [exec] Result: 1
     [echo] composer update complete

这是Ant的目标:

<target name="self-update"
        if="composer.self-update"
        unless="composer.installed"
        description="Self-update Composer">
    <echo message="Self-updating composer" level="debug"/>
    <exec executable="${composer.phar}">
        <arg value="self-update" />
        <arg value="--quiet" />
        <arg value="--no-interaction" />
    </exec>
    <echo message="composer self-update complete" level="debug"/>
</target>

但是,这在本地运行Ant构建时工作正常。

有人说要删除作曲家安装程序设置的环境变量;但它似乎没有改变任何东西。

php jenkins ant composer-php
1个回答
0
投票

有一个名为COMPOSER的环境变量设置为C:\ProgramData\ComposerSetup\bin。通过Environment Variables控制面板无法看到该变量。

我可以通过将env key="composer"设置为""来解决这个问题。

<target name="composer"
        depends="init, self-install, self-update"
        if="composer.run">
    <condition property="composer.command" value="update" else="install">
        <available file="${composer.lock}"/>
    </condition>
    <echo message="Beginning composer ${composer.command}" level="debug"/>
    <exec executable="php">
        <env key="composer" value=""/>
        <arg value="${composer.phar}"/>
        <arg value="${composer.command}"/>
        <arg value="--verbose"/>
        <arg value="--no-interaction"/>
        <arg value="--optimize-autoloader"/>
        <arg value="--prefer-dist"/>
    </exec>
    <echo message="composer ${composer.command} complete" level="debug"/>
</target>

它也可以设置为composer.json

© www.soinside.com 2019 - 2024. All rights reserved.