我为我的个人PHP库创建了一个SVN仓库,并在根目录添加了一个composer.json文件:
{
"name": "myPersonalLibrary/lib",
"type": "library",
"description": "Light MVC framework for PHP 5.4",
"keywords": ["database","mvc"],
"homepage": "http://mysite.com",
"license": "MIT",
"require": {
"php": ">=5.3.0",
"mustache/mustache": "dev-master"
},
"autoload": {
"psr-0": {
"bbn": "src"
}
}
}
然后我用下面的composer.json创建了一个项目:
{
"require": {
"monolog/monolog": "1.0.*",
"zerkalica/php-code-sniffer": "dev-master",
"mustache/mustache": "dev-master",
"myPersonalLibrary/lib": "*"
},
"repositories": [
{
"type": "svn",
"url": "https://mysite.com/svn/myPersonalLibrary",
"branches-path": false,
"tags-path": false,
"trunk-path": "src"
}
]
}
当我尝试更新我的项目时,我得到:No valid composer.json was found in any branch or tag of https...
我认为问题出在我的文件结构上,但我找不到任何关于这方面的文档:
/my_repo
/src
/lib
/api
/db
/file
/html
....
/mvc.php
/obj.php
/composer.json
我试着在packagist.org上发布我的网址,结果得到了No valid/supported repository was found at the given URL
发布于 2014-07-24 02:41:53
如果您使用官方推荐的带有“项目根目录”的存储库布局(它恰好包含三个子目录:/trunk
、/branches
和/tags
),那么这应该适用于您:
对于您的PHP库,在主干的项目根目录中创建composer.json
(并提交它)。例如:
{
"name": "myProject/myLibrary",
"description": "My Personal Library",
"license": "proprietary",
"require": {
"php": ">=5.3"
},
"autoload": {
"classmap": ["src/"]
}
}
假设您的库存储库可从http://svn.example.com/path/to/myLibrary
获得。那么布局将是:
/path/to/myLibrary
/trunk
/composer.json
/src
...
/branches
/tags
然后,在要使用库的项目中,创建包含以下内容的composer.json:
{
"repositories": [
{
"type": "vcs",
"url": "http://svn.example.com/path/to/myLibrary"
}
],
"require": {
"nette/nette": "~2.2",
"myProject/myLibrary": "@dev"
}
}
关键是如果你在主干中还只有composer.json
,那就使用@dev
作为你的库所需的版本。一旦你从主干创建了一个标签,你就可以开始使用版本号了。例如,如果您使用svn copy ^/trunk ^/tags/1.0.0
,那么您可以使用"myProject/myLibrary": "~1.0"
作为您的版本号。
https://stackoverflow.com/questions/14093900
复制相似问题