在composer.json中使用自定义版本标记pattern \ vcs路径

时间:2019-07-04 06:51:11

标签: php composer-php

我有一个svn *存储库,其中包含库(例如src \ LibA,src \ LibB等)的集合(“ MyCommonLib”)。

我想将每个Lib *发布为单独的作曲家程序包。我在每个Lib *中都包含了composer.json,并且可以将composer指向每个trunk \ src \ Lib *,并且似乎并不介意....直到涉及到版本。

标记结构是针对整个集合tags\1.0\composer.json进行版本控制的,对于集合(MCL)而言,这本身就很好。但是,对于Lib *来说,这不合适,因为MCL \ composer.json!= MCL \ src \ LibA \ composer.json。

理想我“简单地”想要在LibA \ composer.json中指定其“标记版本”是从指定路径中提取的。即tags\[version]\src\LibA\composer.json而不是沼泽标准tags\[version]\composer.json

反正有这样做吗?

*虽然SVN始终存在于图片中,但我有能力设置git镜像(如果有帮助的话)。

PS这可能闻起来像Using Composer when multiple components are in the same vcs repo,但它的A)持续了6个,而B)我特别询问的是标签\版本模式发现已解决了其基本软件包发现问题自我。

1 个答案:

答案 0 :(得分:1)

您可以使用package-path设置来指定存储库中软件包的路径:

"repositories": [
    {
        "type": "vcs",
        "url": "https://svn.example.org/",
        "package-path": "src/LibA/"
    }
]

Composer应该使用https://svn.example.org/trunk/src/LibA/composer.jsonhttps://svn.example.org/branches/[branch name]/src/LibA/composer.jsonhttps://svn.example.org/tags/[version]/src/LibA/composer.json作为此程序包的路径。

请参见example in documentation