我有一个Ant构建脚本,它试图执行Composer install,但在通过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构建时,这可以很好地工作。
有些人建议删除composer安装程序设置的环境变量;但是,这似乎并没有改变任何事情。
发布于 2019-02-12 22:01:47
有一个名为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。
https://stackoverflow.com/questions/54452174
复制相似问题