我有一个本地git repo和项目,我想使用它。 项目文件夹中的composer.json:
"repositories": [
{
"type":"package",
"package":{
"name":"api",
"version":"0.1.0",
"source":{
"type":"git",
"url":"/var/www/modules/api",
"reference":"master"
}
}
}
],
"require": {
"api": "*"
}
composer install从repo获取源代码。然后我提交了存储库中的更改并制作了git标签" 0.1.1" 在composer.json中,我将版本更改为" 0.1.1" 运行composer update:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
- Updating api (0.1.0 => 0.1.1) Checking out master
Writing lock file
Generating autoload files
但是文件没有更新。
答案 0 :(得分:1)
不要使用package
作为存储库类型。如果发生变化,您必须手动更改内部的所有信息。
package
实际上只适用于您拥有无法为版本控制中托管的代码但未在版本控制中托管的代码的情况。
对于所有其他情况,即您拥有版本控制中的代码,并且可以向其添加composer.json
,请将composer.json
与存储库URL一起使用。然后,Composer工作得更好。
软件包:如果依赖于对composer没有任何支持的项目,您可以使用软件包存储库内联定义软件包。你基本上只是内联composer.json对象。
注意:此存储库类型有一些限制,应尽可能避免:
- 除非您更改版本字段,否则Composer不会更新包。
- Composer不会更新提交引用,因此如果您使用master作为引用,则必须删除该包以强制更新,并且必须处理不稳定的锁定文件。