2014-09-24 43 views
0

在工作中,我有一个GitLab设置作为Git存储库来托管一个可以并且将在多个网站上使用的常用作曲家软件包(symfony2软件包用于它的价值)。不是一种非常不常见的做法。私人作曲家套装拒绝更新

我设法配置composer.json的看到海誓山盟:

在现场即时通讯现在的工作,我有:

"repositories": [ 
    { 
     "type": "package", 
     "package": { 
      "name": "coresystem/tools-bundle", 
      "version": "dev-master", 
      "source": { 
       "url": "{sorry this is private}", 
       "type": "git", 
       "reference": "master" 
      }, 
      "autoload": { 
       "psr-0": { 
        "CoreSystem\\ToolsBundle": "src" 
       } 
      } 
     } 
    } 
] 

,并在包库:

{ 
    "name": "coresystem/tools-bundle", 
    "type": "symfony-bundle", 
    "description": "A collection of common use tools across the network of core sites", 
    "license": "DBAD", 
    "authors": [ 
     { 
      "name": "Kyle Harrison", 
      "email": "{private, sorry}" 
     } 
    ], 
    "minimum-stability": "dev", 
    "require": { 
     "php": ">=5.3.0", 
     "symfony/framework-bundle": "~2.5" 
    }, 
    "autoload": { 
     "psr-0": { 
      "CoreSystemToolsBundle": "src/" 
     } 
    } 
} 

在网站上,当我运行$ composer require coresystems/tools-bundle dev-master它工作得很好。它下载了回购,安装它。一切都很好。

直到我需要更新工具包。

我做了我的更改,并将它们推送到工具gitlab回购。

但在网站上,当我运行$ composer update coresystems/tools-bundles它说没有什么可更新的。

无奈之下,我开始设置一些标签,推动这些标签,并尝试诸如$ composer update coresystems/tool-bundle 1.*@dev之类的东西,但无济于事。

为了得到它的工作,我不得不先运行$ composer remove coresystems/tools-bundle,然后再次运行$ composer require coresystems/tools-bundle dev-master为它重新克隆库

是怎么回事?

+0

向我们展示** composer.json **中的'require'定义以及您的包中'git branch'和'git tag'的输出是什么? – 2014-09-24 19:36:54

回答

2

请勿使用type:package作为存储库描述。这是需要完成的手动工作,因为Composer可以检测到需要知道的所有信息,以了解您是否使用受支持的存储库(SVN,Git,Mercurial)并且已经提交了一个composer.json文件。

使用时,只需提供作曲的存储库的位置:

"repositories" : [ 
    { "type":"vcs", "url":"your private URL of the Git repo"} 
] 

这一切。不需要复制自动装载定义,或者需要在软件包描述中提及的其他任何内容。