Ros*_*oss 6 php dependency-management laravel composer-php laravel-4
我有一个Laravel项目,我想使用自己的fork(已经合并了几个pull-requests).以下composer.json按预期工作(它从我的repo中获取master分支):
{
"repositories": [
{
"type": "vcs",
"url": "http://github.com/rmasters/framework"
}
],
"require": {
"php": "5.4.*",
"laravel/framework": "dev-master"
},
...
"minimum-stability": "dev"
}
Run Code Online (Sandbox Code Playgroud)
但是,当我添加一个依赖于Laravel提供的Illuminate组件的软件包时(例如,zizaco/entrust
它需要与我的fork提供的版本相同),我最终会得到这样的结果:
- 安装gexge/laravel-framework(4.0.x-dev 87556b2)
- 从缓存中读取.../Composer/cache/files/gexge/framework/87556b ..... c382.zip
- 从缓存加载
提取档案
原因:zizaco /委托dev-master需要照亮/支持4.0.x - >可满足
- laravel/framework [v4.0.5,v4.0.4,v4.0.3,v4.0.2,v4.0.1,v4.0.0-BETA4,v4.0.0-BETA3,v4.0.0-BETA2,v4.0.0,4.0.x-开发]
- gexge/framework [4.0.x-dev,v4.0.0,v4.0.0-BETA2,v4.0.0-BETA3,v4.0.0-BETA4,v4.0.1,v4.0.2,v4.0.3,v4.0.4,v4. 0.5],
- shrimpwagon/laravel-framework [4.0.x-dev,v4.0.0,v4.0.0-BETA2,v4.0.0-BE TA3,v4.0.0-BETA4,v4.0.5],
- 照亮/支持 [4.0.x-dev,v4.0.0,v4.0.0-BETA2,v4.0.0-BETA3,v4.0.0-BETA4,v4.0.1,v4.0.2,v4.0.3,v4.0.4,v4. 0.5].
这实际上最终安装了我的fork和这个fork,gexge fork在自动加载器中占优势.
有没有办法让依赖关闭拿起我的分叉而不是试图找到另一个?我的fork有相同的包名(composer.json尚未更改) - 所以我认为这样可行.
或者,我可以阻止某些包被选中吗?(我还没有找到任何这方面的文档.)令人讨厌的是,这两个分叉似乎都没有太多理由在Packagist上,但我想Composer应该可以解决这个问题.
Sel*_*aek 10
您的fork具有master set to的分支别名4.1.x-dev
,因此它与4.0.*
要求不匹配.
解决方案是通过像这样要求对包进行别名
{
"repositories": [
{
"type": "vcs",
"url": "http://github.com/rmasters/framework"
}
],
"require": {
"php": "5.4.*",
"laravel/framework": "dev-master as 4.0.0"
},
...
"minimum-stability": "dev"
}
Run Code Online (Sandbox Code Playgroud)
事实上,那些叉子不应该是Packagist,我会联系业主.
归档时间: |
|
查看次数: |
1463 次 |
最近记录: |