有没有一种方法可以告诉composer仅使用git存储库中一个文件夹的内容?

3

我有几个小项目(php),使用单元测试(phpUnit)进行管理,并通过版本控制系统(git)发布为开源(github)。我想在使用依赖管理器(composer)将这些小项目作为大型项目的依赖项。

仓库的结构如下:

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

当有人使用composer加载这些小项目时,我只想将/src的内容返回到更大项目中的适当文件夹中。是否有方法可以实现这一点?我一直在搜索但还没有找到解决方案。
2个回答

1
如果这些文件位于composer/src/的不同子文件夹中,则您可以将这些存储库作为submodules添加到composer存储库中。
cd /path/to/composer
git submodule add -- /url/to/subrepo src/subrepo

然后使用简单的 git clone --recusive /url/to/composer 命令将一切都克隆下来。


0
创建一个名为.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)。 - emeraldinspirations

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接