作曲家:如何找到软件包的确切版本?

假设我正在编写一个库A,它依赖于另一个库,例如monolog。

我想安装最新版本的 monolog,所以我只是把它放在 composer.json 中:

{
    "require": {
        "monolog/monolog": "*.*.*"
    }
}

然后我运行.$ php composer.phar install

我本来以为在composer.lock里面找到安装的版本,但它不在那里:

{
    "hash": "d7bcc4fe544b4ef7561918a8fc6ce009",
    "packages": [
        {
            "package": "monolog/monolog",
            "version": "dev-master",
            "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7"
        }
    ],
    "packages-dev": null,
    "aliases": [

    ],
    "minimum-stability": "dev",
    "stability-flags": [

    ]
}

我需要这个版本,因为我想将我的库绑定到一组特定的版本,例如:如果我发现版本是1.3.5,在我的composer.json中,我想放这样的东西:

    "require": {
        "monolog/monolog": "1.3.*"
    }

有什么想法吗?


答案 1

我知道这是一个老问题,但是...

composer.phar show

将显示所有当前安装的包及其版本信息。(仅在使用现已弃用的选项时,在以前版本的 Composer 中才会显示这一点。-i

若要查看更多详细信息,请同时指定包的名称:

composer.phar show monolog/monolog

这将显示许多内容,包括提交MD5哈希,源URL,许可证类型等。


答案 2

你可以像这样使用作曲家表演:

composer show package/name

推荐