我正在使用composer
和symfony php
。如何在不依赖的情况下在作曲家中安装软件包
有一个bundle A
依赖于另一个bundle B v 1.1
。
但我有bundle B v 2
的最新版本。
现在我想安装bundle A
而不安装它的依赖项bundle B v 1.1
。
我该如何继续?请建议。
我正在使用composer
和symfony php
。如何在不依赖的情况下在作曲家中安装软件包
有一个bundle A
依赖于另一个bundle B v 1.1
。
但我有bundle B v 2
的最新版本。
现在我想安装bundle A
而不安装它的依赖项bundle B v 1.1
。
我该如何继续?请建议。
设置:
最新瓢虫束版本是1.0.2
但也有同时被一些更多的提交。它要求瓢虫版本是1.0.8
,它不包括最新的变化。
溶液:
一个简单的解决办法是使用inline-alias。喜欢的东西:
"require" : {
"raulfraile/ladybug-bundle": "dev-master as 1.0.3"
"raulfraile/ladybug": "dev-master as 1.0.9"
}
替代:
您可以在composer.json包括改变的依赖具有相同的名称定义一个包。
只需从原始包中复制包装定义,添加dist/source位置并编辑要求即可。
作曲家然后将使用这个新的包定义,因为它从所有已知存储库中选取第一个匹配(packagist始终被查询)。
您应该为dist-zip选择一个特定的提交。举个例子:
"repositories": [
{
"type": "package",
"package": {
"name": "raulfraile/ladybug-bundle",
"version": "1.0.3",
"require": {
"raulfraile/ladybug" : "[email protected]"
},
"dist": {
"url": "https://github.com/raulfraile/LadybugBundle/archive/5c3739a881313f63f7b47ace49af5deeed211362.zip",
"type": "zip"
},
}
}
],
现在需要"raulfraile/ladybug-bundle": "~1.0"
在composer.json,它会使用你自己定义的1.0.3
版本。
哇,完美的工作 – user3147180
昨天有人问到一个相当类似的[问题](http://stackoverflow.com/q/21973786/1832745)。 – nifr
@nifr我想你知道。我的问题是与瓢虫捆绑。它需要瓢虫1.02,但我已安装它的主版本,所以作曲家导致错误 – user3147180
如果A需要1.1和B需要2.0,那么你有依赖问题,你不能解决。可以使用1.1或2.0。 –