2014-09-24 60 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"} 
] 

這一切。不需要複製自動裝載定義,或者需要在軟件包描述中提及的其他任何內容。