我已经创建了两个git存储库,我们需要使用PHP的作曲家在我们的一个Web应用程序中安装它们.每个存储库上有两个分支,master和dev-master.
在项目内部我希望安装包,我创建了以下composer.json包配置:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "proprietary",
"repositories": [
{
"type": "package",
"package": {
"name": "impression-works/pdf-generator",
"version": "dev-master",
"source": {
"url": "git@github.com:...",
"type": "git",
"reference": "dev-master"
}
}
},
{
"type": "package",
"package": {
"name": "impression-works/psd-templates",
"version": "dev-master",
"source": {
"url": "git@github.com:...",
"type": "git",
"reference": "dev-master"
}
}
}
],
"require": {
// ...
"impression-works/psd-templates": "dev-master",
"impression-works/pdf-generator": "dev-master"
},
"autoload": {
// ...
"psr-0": {
"ImpressionWorks\\PsdTemplates": "vendor/impression-works/psd-templates/src",
"ImpressionWorks\\PdfGenerator": "vendor/impression-works/pdf-generator/src"
}
},
// ...
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
Run Code Online (Sandbox Code Playgroud)
当我最初运行composer update或composer install时,impression-works包安装完美,但是,如果我对这些存储库进行更改并将它们推送到dev-master,则对composer update的任何连续调用都会报告:
Nothing to install or update
Run Code Online (Sandbox Code Playgroud)
如何强制composer更新到我们这两个自定义包的最新提交?
Chr*_*ian 14
我通过Google搜索每周多次来到此页面,但却发现它无法解决我的问题.所以这里.
我正在使用packagist.org,而不是VCS.我不想使用VCS,因为它会让Composer变得更慢,而且它已经很慢了.
Condider以下场景.在早期开发中的应用取决于我正在构建的包.该软件包也是dev的早期版本,所以dev-master作为版本每次都能获得最新版本.
我在包中修复了一个关键错误,提交并推送它,在packagist.org中混合更新按钮,然后运行composer update,绝对没有任何反应.
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating autoload files
Run Code Online (Sandbox Code Playgroud)
此时您可能会尝试清除缓存.它没有帮助.
有些时候你会在2012年偶然发现这个未解决的问题.之后你会发现安装最新版本的唯一方法是在require中使用commit hash.
composer require vendor/package dev-master#0d7d6c88
这要求您手动获取提交哈希并将版本更新为composer.json,然后composer update再次运行.不完全是您对依赖管理器的期望.看起来这个问题永远不会消失,所以除非有人写了更好的Composer,否则我们会坚持这种行为.
另一种方法是使用Composer标记要下载的每个提交.谨防混淆最小稳定性规则和错误,默认情况下Composer会抛出这些规则和错误.
我只是遇到了同样的问题。弄清楚之后,解决方案相当简单:清理缓存。
Josef 和 Christian 正在寻找的东西可以通过以下两行来完成:
composer clearcache
composer upgrade
Run Code Online (Sandbox Code Playgroud)
这为我加载了最后一个存储库主。希望它有助于下一个,阅读这个线程。
重要的提示:
您必须等待 GitHub 服务挂钩启动并更新 packagist.org 上的 composer 包,或者手动使用站点上的“更新”按钮。
这不是几秒钟的事情……您必须等待一段时间(通常为一到五分钟)才能让 packagist 有机会分发更改。
所以为了持续、快速的开发,我只会手动cd vendor/base/package和git update. 并不时尝试上述clearcache和upgrade。
比@Bitclaw的答案更简单的版本,对我来说以下工作完美无缺:
composer update --prefer-source developer/package
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10414 次 |
| 最近记录: |