我通常使用Java来使用Maven作为依赖管理(DM)来创建IT项目。根据要求,我必须在公司中实施DM,我在一些用PHP制作的项目中工作。其中一个要求是他们不想使用任何类型的框架作为symfony,laravel,zend等。
我正在研究PHP的一些DM,发现最好的选择是Composer。我正在从事多层项目,类似的事情:
当我开始构建这个结构时,我发现的第一个问题是Composer没有检索递归依赖,因此我将Satis实现为Package Repository。我使用Satis而不是Packagist是因为项目是私有项目,并且这实现了SVN作为版本控制系统,而Packagist使用GitHub来检索项目的源代码。
在解释了我所做的所有实施后,我发现了多层结构发展的一些障碍。
我的satisf.json看起来像
{
"name": "My Repository",
"homepage": "https://www.myrepository.com/",
"repositories": [
{ "type": "vcs", "url": "file:///C:/core/branches/core/" },
{ "type": "vcs", "url": "file:///C:/services/branches/services/" }
],
"require-all": true
}
感谢您的帮助。
答案 0 :(得分:2)
仅支持本地引用,只需指定文件路径即可。
我不知道它在Windows上是如何工作的,但在基于unix / linux的系统上,以下工作:
{
"repositories": [
{ "type": "vcs", "url": "/path/to/git/repo" }
]
}
参考文献:
答案 1 :(得分:1)
Satis不接受文件URL来抓取内容,但您可以直接在根项目composer.json
中指向SVN存储库(因为,正如您已经发现的,Composer无法解决这些问题)递归地存储库。)
您不必直接依赖此存储库中提供的软件包,您只需提及它就可以更新内容。