我正在构建一个自动脚本,用于安装最新版本的Symfony 2.2,将我们公司的CMS包添加到composer.json
,创建几个新包等等。
自动化工作正常,但偶尔一些供应商从GitHub下载随机失败,由于超时。当我再次运行php composer.phar install
时,下载通常会成功,而安装过程在几个依赖项之后再次失败。大约执行了10次之后,所有的东西都安装好了。
这会给安装程序带来很大的问题,因为在断言失败的情况下,它当前会退出并清理它安装的所有内容。是否有一种方法,我可以保持运行作曲家安装命令,直到我确定一切都安装,或要求作曲家重试下载,如果他们失败?
Composer现在有一个内置的功能来重试下载,参见:
https://github.com/composer/composer/commit/5267bafa2cb28e564dbca8d1bfaa64de2a120827我已经通过使用本地存储库来处理大型包(通常充满生成的代码和图像)。只需下载Symfony的zip并编辑您的作曲家。Json添加本地存储库点
"require": {
"symfony/symfony": "2.2.1"
},
"repositories": [
{
"type": "package",
"package": {
"name" : "symfony/symfony",
"version" : "2.2.1",
"dist": {
"url": "/Users/cassell/Symfony_Standard_Vendors_2.2.1.zip",
"type": "zip"
}
}
}
]
您还可以检查composer的退出代码并在失败时重新运行它。