我正在尝试使用Composer将 google-api-php-client 库包含到我的项目中。最简单的方法是从VCS中继分支获取库,但我认为在我的情况下这不是最好的主意。更好的是指向一些稳定的库状态(标记或修订)。虽然没有可用的标签,但获得特定的svn版本是唯一的选择。但我不知道该怎么做。
我尝试了不同的包配置但没有成功,如下所示:
{
"repositories":[
{
"type":"package",
"package":{
"name":"project/google-api-php-client",
"version":"0.2.1",
"source":{
"type":"svn",
"url":"http://google-api-php-client.googlecode.com/svn",
"reference":"trunk/?r=515"
}
}
}
]
}
是否有可能用作曲家签出svn修订版?提前谢谢。
答案 0 :(得分:1)
在定义版本时使用软件包存储库,您可以在引用中指定修订版本。我的wordpress composer.json
中的一个例子{
"repositories": [
"type": "package",
"package": {
"name": "wordpress-plugin/wp-minify",
"type": "wordpress-plugin",
"version": "1.2",
"source": {
"type": "svn",
"url": "http://plugins.svn.wordpress.org/wp-minify",
"reference": "trunk@691320"
},
"require": {
"composer/installers": "~1.0"
}
}
]
}
这将从主干安装插件,并明确修订691320
。
答案 1 :(得分:0)
可以在require部分(您未显示)中设置版本。
唯一可用的SVN选项是:
{
"repositories": [
{
"type": "vcs",
"url": "http://svn.example.org/projectA/",
"trunk-path": "Trunk",
"branches-path": "Branches",
"tags-path": "Tags"
}
]
}
看起来你想要使用一个包,但你也可以只定义这个存储库并require
使用适当的版本(你可以标记吗?它更容易)。
您也可以尝试将修订版本放入version
参数,但我认为这不起作用。
此外,文档说明了关于“主干”路径:
由于Subversion没有分支和标签的原生概念,因此Composer 默认情况下,代码位于$ url / trunk,$ url / branches中 和$ url / tags。如果您的存储库具有不同的布局,则可以 改变这些价值观。