【问题标题】:Is there a way to tell composer to use only the contents of one folder in a git repo?有没有办法告诉作曲家只使用 git repo 中一个文件夹的内容?
【发布时间】:2017-01-03 20:15:33
【问题描述】:

我有几个小项目 (php),其中包含由 VCS (git) 管理的单元测试 (phpUnit) 并已发布开源 (github)。我想使用依赖管理器 (composer) 将这些小项目用作大型项目中的依赖项。

回购是结构化的:

/src/(files I want referenced by composer)
/phpUnit/(unit tests)
/doc/(documentation)
/(License & other meta-data)

当有人使用composer 加载这些小项目时,我只想将/src 的内容返回到更大项目的相应文件夹中。

有没有办法做到这一点?我一直在寻找,但还没有找到解决方案。

【问题讨论】:

    标签: php git github phpunit composer-php


    【解决方案1】:

    如果这些文件位于 composer/src/ 的不同子文件夹中,那么您可以将这些 repos 添加为 composer repo 的 submodules

    cd /path/to/composer
    git submodule add -- /url/to/subrepo src/subrepo
    

    然后一个简单的git clone --recusive /url/to/composer 将克隆所有内容。

    【讨论】:

      【解决方案2】:

      如下创建.gitattributes文件:

      /phpUnit export-ignore
      /doc export-ignore
      /license export-ignore
      (add all other metadata files here as well)
      

      Github 将在它为发布创建的 zip 文件中排除这些文件和目录,因此如果用户使用 --prefer-dist 安装软件包,则不会安装排除的文件。

      但实际上,我更倾向于专门指向其中一个子目录 (/src)。

      那是不可能的。 Composer 是一个 管理器,由于包是一个内聚单元,因此部分安装它是没有意义的。

      【讨论】:

      • 这解决了我的一个问题。但实际上,我更倾向于专门指向其中一个子目录 (/src)。
      猜你喜欢
      • 1970-01-01
      • 2017-01-05
      • 1970-01-01
      • 2010-11-19
      • 2021-12-23
      • 2012-03-22
      • 1970-01-01
      • 2023-03-30
      • 2015-09-01
      相关资源
      最近更新 更多