У меня есть проект X, который опирается на модуль Y. Они оба мои частные проекты. У каждого есть свой репозиторий git на битбакете. И у каждого из них есть композитор.json.
Когда я запускаю composer install
в проекте X, он получает Y из своего репозитория и перетаскивает его в каталог X vendor
.
Проблема заключается в том, что он также создает каталог .git
в vendor/jodes/Y/
.
Это проблема, потому что что-то продолжает открывать файлы в этом каталоге.git, то есть мои скрипты [непрерывной интеграции] не могут затем удалить каталог .git
когда он повторяет этот процесс. Я предполагаю, что это моя IDE.
X composer.json:
{
"name": "jodes/X",
"require": {
"jodes/Y": "dev-master"
},
"repositories": [
{
"type": "vcs",
"url": "https://[email protected]/Jodes/Y.git"
}
]
}
Кажется, что композитор в основном запускает git clone
для извлечения из репозитория? Вместо этого, есть ли способ заставить его сделать что-то похожее на git archive
в каталог vendor
? (а не zip файл).
в качестве обходного пути я попытался настроить мою среду IDE (Netbeans), чтобы игнорировать каталог .git
но мои скрипты по-прежнему получают ошибку "Permission denied" при попытке удалить ее.
В качестве бонуса я также хотел бы использовать другие преимущества использования git archive
, такие как возможность указывать файлы или каталоги или другие шаблоны, которые будут исключены из архива.
composer [install|update] --prefer-dist
должен сделать трюк.
По умолчанию, особенно когда вы ссылаетесь на ветки, вместо тегов ("версий"), композитор предпочитает получать зависимости в качестве источника. Если вы укажете --prefer-dist
вы прямо скажете композитору использовать архив.
.git
все еще создается вvendor/jodes/Y/
. Возможно, чтобы--prefer-dist
имел желаемый эффект, мне нужен определенный параметр в одном из моих файловcomposer.json
?https://bitbucket.org/Jodes/Y.git
вместоhttps://[email protected]/Jodes/Y.git
и оно должно работать.