2016-02-26 147 views
2

我开发了一个自定义的laravel软件包并将其放在GitHub上。我把它放在composer.json(下面的代码)中,它安装正常。Force Composer更新软件包

我还没有版本信息,因为它仍在开发中。当我修改我的包(在一个单独的目录中)时,我承诺并将更改推送到GitHub仓库。

当我运行'composer update'时,我得到“没有安装或更新”。如果我从我的供应商目录中删除软件包并进行更新,那么我的软件包将从GitHub仓库安装,并附带最新的更改。

但是我希望能够从回购站中强制执行最新的更改,而不必先从我的供应商目录中删除它,因为我对该软件包有其他依赖关系,如果删除它,我会从工匠明确编译的类没有被定义(因为它们在我删除厂商包中定义...)

我的顶级composer.json的有关部分:

"repositories": [{ 
    "type": "package", 
    "package": { 
     "name": "myrepo/MyExtension", 
     "version": "dev-master", 
     "source": { 
     "url": "https://github.com/myrepo/MyExtension.git", 
     "type": "git", 
     "reference": "master" 
     }, 
     "autoload": { 
     "psr-4": { 
      "MyExtension\\": "src/Extensions/" 
     } 
     } 
    } 
    ], 
    "require": { 
    "php": ">=5.5.9", 
    "laravel/framework": "5.2.*", 
    "myrepo/MyExtension": "dev-master" 
    }, 

回答

2

您已经自己创建了有关软件包的所有元数据,可能会使Composer认为数据没有更改。

的容易,而且很可能工作,方式是简单地指向存储库URL,让作曲家查询从包含在库中的文件composer.json元数据:

"repositories": [{ 
    "type": "vcs", 
    "url": "https://github.com/myrepo/MyExtension.git" 
]} 
+1

,完美的工作,谢谢!我把太多的信息放到了我的主composer.json文件中。把它全部移到了package composer.json,并且只是你上面建议的基本仓库信息(虽然把“type”改成了“git”)。 – ChrisNY

0

对于它来更新您需要对版本进行更改,但正如您之前所说的,您并未对版本进行版本控制,以便它可以更新您的更改请转至composer.lock以删除您的软件包条目或使用composer删除软件包并重新安装。例如

// composer remove vendor/package && composer require vendor/package 
composer remove zizaco/entrust && composer require zizaco/entrust 
相关问题