【问题标题】:Optimize multiple Composer VCS repository paths优化多个 Composer VCS 存储库路径
【发布时间】:2015-11-11 15:26:36
【问题描述】:

我有一些 composer.json 文件,其中包含如下部分:

"repositories": [
    {
        "type": "vcs",
        "url": "http://svn.example.com/libs/",
        "package-path": "Package1"
    },
    {
        "type": "vcs",
        "url": "http://svn.example.com/libs/",
        "package-path": "Package2"
    },
    {
        "type": "vcs",
        "url": "http://svn.example.com/libs/",
        "package-path": "Package3"
    }
],

"require": {
    "ident/Package1": "~2.0",
    "ident/Package2": "~3.0",
    "ident/Package3": "~1.0"
}

也就是说,各个包在 Subversion 中的 ../trunk 目录下的子目录中,而不是它们自己的项目目录中的标准 ./[trunk,tags,branches] 排列。

有没有办法优化这个 composer.json 以便在只有 package-path 更改时不必重复 VCS typeurl 值?假设我无法更改 Subversion 目录布局,但其他任何事情都是可能的。

【问题讨论】:

    标签: composer-php


    【解决方案1】:

    我想不出优化这个的方法。

    真正的优化潜力在一个完全不同的层面上:添加私有存储库的方式要求您始终将它们中的每一个都添加到根 composer.json 文件中,即使包没有直接包含在那里。

    这是很多维护工作。例如,如果您可以使用Satis 创建一个本地包存储库并且只在任何地方添加这个单一信息,那就更好了。使用 Satis,您将只添加一次私有存储库 - 然后您是否重复 URL 并不重要。添加新包只会在 Satis 配置中完成一次,然后在任何地方都可用。

    【讨论】:

    • 我担心会是这样。我想我会游说以更标准的方式安排我们的 Subversion 存储库。否则,我会看看我是否可以实施 Satis 解决方案。谢谢!
    • 优化您的 SVN 并不会真正帮助您 - 您将受益于只为每个包编写两行而不是三行。选择 Satis 选项,它将帮助您独立于包托管的类型和风格。它还允许您从 Github 或其他地方获得您正在使用的软件包的本地副本。 (以防您在部署期间认为 Github 停机不方便)。
    • 感谢您的额外建议。确实,我有一个大型的我自己的包库,还有一堆我在 Github/Packagist 使用的。所以 Satis 似乎是首选。
    • 有一种方法,如果您可以获得存储库的 zip url,您可以将其用作 dist 而不是 VCS。参考:getcomposer.org/doc/… 基本上是先下载 zip 文件再安装以提高效率
    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 2013-06-01
    • 2013-09-19
    • 1970-01-01
    • 2019-12-31
    • 2013-03-18
    • 1970-01-01
    • 2020-02-08
    相关资源
    最近更新 更多