我有几个小项目(php
),由VCS (git
)管理单元测试(phpUnit
)并发布开源(github
)。我想在使用依赖管理器(composer
)的大项目中使用这些小项目作为依赖项。
回购是结构化的:
/src/(files I want referenced by composer)
/phpUnit/(unit tests)
/doc/(documentation)
/(License & other meta-data)
当有人使用composer
加载这些小项目时,我只希望/src
的内容返回到更大项目的相应文件夹中。
有办法做到这一点吗?我一直在寻找,但还没有找到解决办法。
如果这些文件位于composer/src/
的不同子文件夹中,那么您可以将这些repos添加为子模块。
cd /path/to/composer
git submodule add -- /url/to/subrepo src/subrepo
那么一个简单的git clone --recusive /url/to/composer
将克隆所有内容
按如下方法创建.gitattributes
文件:
/phpUnit export-ignore
/doc export-ignore
/license export-ignore
(add all other metadata files here as well)
Github会排除这些文件和目录在它为发行版创建的zip文件中,所以如果用户使用--prefer-dist
安装包,排除的文件将不会被安装。
但实际上我更关注的是指向子目录(
/src
)中的一个。
这是不可能的。Composer是一个包管理器,因为包是一个内聚单元,所以部分安装它是没有意义的。