作曲家 - 请求的包 [0.0.9] 作为 [0.0.5,0.0.6] 存在,但这些被您的约束拒绝

2022-08-31 01:19:29

今天,我遇到了一个奇怪的错误,我无法描述自己。composer update

{
   "repositories": {
       "my-plugin": {
           "type": "vcs",
           "url": "git@mycodebase.com:mjplug/myplugin.git"
       }
    },
   "require": {
        "my-plugin/myplugin": "0.0.9",
   }    
}

当我尝试时,我会得到composer update

The requested package my-plugin/my-plugin 0.0.9 exists as my-plugin/my-plugin[0.0.6, 0.0.5] but these are rejected by your constraint.

但是存在类似于存储库中的标记。为什么没有找到它们?0.0.7, 0.0.8, 0.0.9

如果我设置为版本约束,它的工作原理是作曲家将安装.~0.0.10.0.6

任何提示?谢谢

编辑:这是我们Bitbucket服务器实例的屏幕截图:http://imgur.com/a/m8lRT

编辑2:已解决:在上一个版本中,出于某种原因,我将composer.json放在子目录中。所以这就是作曲家找不到最新标签的问题。


答案 1

Composer 允许通过将分支指定为 dev-来使用分支作为版本,因此 dev-master 与 master 分支相关。如果要指定特定标记,则如下所示

"author/package": "dev-master#v1.1.0"

另请参阅以下链接:

链接

参考


答案 2

根据 Composer 文档中的描述,我会将您的标签更新到主分支上的: , , 。因此,应该帮助作曲家遵循所说的内容:v0.0.7v0.0.8v0.0.9

Composer 首先要求 VCS 列出所有可用标签,然后基于这些标签创建可用版本的内部列表。在上面的例子中,composer的内部列表包括版本1.0,1.0.1,1.0.2,beta版本1.1,第一和第二个候选版本1.1,最终发布版本1.1等。(请注意,Composer 会自动删除实际标记名称中的“v”前缀,以获取有效的最终版本号。

一旦这些标签在你的主,你的或等应该正常工作。"my-plugin/myplugin": "0.0.9""my-plugin/myplugin": "0.0.*"


推荐