假设我有一个带有锁定依赖项的composer.json
文件:
{
"require" : {
"zendframework/zendframework" : "2.4.2"
},
"require-dev": {
"phpunit/phpunit": "4.6.6"
}
}
我想这样做是因为想要手动更新依赖项,所以我不会遇到构建失败或其他开发人员遇到我没有的问题的情况,因为Composer安装了不同版本的软件包。 / p>
是否有一种很好的方法可以使用Composer列出锁定包的所有较新版本,可能是composer discover
,我得到输出:zendframework/zendframework
被锁定在版本2.4.2
(或2.4.*
或其他),但有2.5.0,2.5.1和2.6.0版本*?
是否有任何现有命令能够提供这种信息?
基本上,我更关注向我展示的较新版本,因此我可以知道手动更新的依赖项。提交composer.lock
并不是真正的解决方案,因为这不会告诉我要更新的内容(我的composer.json
已锁定在特定版本,因此composer.lock
无论如何都不会有所不同。
答案 0 :(得分:1)
为了做你想做的事,提交composer.lock
文件并确保每个人都运行composer install
来安装deps。这样,每个人都拥有与每个包完全相同的版本/提交。
然后,您可以运行composer update
以获取更新版本。这将更新包和您可以提交和推送的composer.lock
文件,以便每个人都有相同的版本(在他们运行composer install
之后)。
答案 1 :(得分:1)
答案 2 :(得分:0)
这不完全是你的建议。但你可以运行
composer update --dry-run
看看当composer更新你的依赖项时会发生什么。这只显示了一个软件包可以更新到的最新版本,但不是它们之间的版本:
composer update --dry-run
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Updating symfony/translation (v2.5.5) to symfony/translation (v2.5.11)
- Updating symfony/security-core (v2.5.5) to symfony/security-core (v2.5.11)
- Updating symfony/routing (v2.5.5) to symfony/routing (v2.5.11)
- Updating symfony/process (v2.5.5) to symfony/process (v2.5.11)
- Updating symfony/http-foundation (v2.5.5) to symfony/http-foundation (v2.5.11)
答案 3 :(得分:0)
正如其他人所说的那样,作曲家按照你的说法做了,只会{。}}从.lock文件中指定的版本,或install
到新版本(在指定的范围内)给定的版本。)
有一些外部网站服务可以让您知道软件包已经更新 - 例如Versioneye.com。您可以关注许多软件包,它会在任何软件包更新时通知您,因此您可以根据需要更新编写器文件。
答案 4 :(得分:0)
要显示最新版本的软件包,请使用带有;WITH XMLNAMESPACES ('http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition' as rdl10)
SELECT ct.Path as ReportPath,
T1.dataset.value('./@Name','nvarchar(max)') DatasetName,
T1.dataset.value('(.//rdl10:CommandText)[1]','nvarchar(max)') as DatasetQuery,
T1.dataset.value('(.//rdl10:DataSourceName)[1]','nvarchar(max)') as DataSourceName
,t.DSR
FROM catalogtemp ct
CROSS APPLY xmlColumn.nodes('//rdl10:DataSet') T1(dataset)
JOIN (SELECT Path,
T2.dsrc.value('(./@Name)[1]', 'nvarchar(max)') as DSName,
T2.dsrc.value('(.//rdl10:DataSourceReference)[1]', 'nvarchar(max)') as DSR
FROM catalogtemp
CROSS APPLY xmlColumn.nodes('//rdl10:DataSource') T2(dsrc)) t
ON t.Path = ct.Path
AND t.DSName = T1.dataset.value('(.//rdl10:DataSourceName)[1]','nvarchar(max)')
WHERE ct.Path = 'my report'
GO
/ show
参数的-l
,例如
--latest
composer show -l
,-l
显示最新版本
要查看依赖树,请使用--latest
/ -t
参数,例如
--tree
composer show -t
,-t
将依赖项列为树
要列出给定包的所有可用版本,请运行:
--tree
注意:使用您的包名更改composer show -a zendframework/zendframework
。
注意:
zendframework/zendframework
之后添加global
。composer
。