2015-11-11 38 views
1

我有包含像這樣的一些章節文件composer.json:優化多個作曲家VCS庫路徑

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "http://svn.example.com/libs/", 
     "package-path": "Package1" 
    }, 
    { 
     "type": "vcs", 
     "url": "http://svn.example.com/libs/", 
     "package-path": "Package2" 
    }, 
    { 
     "type": "vcs", 
     "url": "http://svn.example.com/libs/", 
     "package-path": "Package3" 
    } 
], 

"require": { 
    "ident/Package1": "~2.0", 
    "ident/Package2": "~3.0", 
    "ident/Package3": "~1.0" 
} 

也就是說,各個包是子目錄顛覆../trunk目錄下,而不是使用標準./[trunk,tags,branches]排列的自己的項目目錄。

有沒有一種方法來優化此composer.json,以便在僅有package-path更改時不必重複VCS typeurl值?假設我不能更改Subversion目錄佈局,但其他任何東西都是可能的。

回答

2

我想不出一種方法來優化這個。

優化的真正潛力在一個完全不同的層面:您添加私有存儲庫的方式要求您始終將其中的每一個添加到根文件夾composer.json,即使軟件包未直接包含在那裏。

這是很多維修工作。例如,如果你可以使用Satis來創建一個本地軟件包存儲庫,並且只在每個地方添加這個單獨的信息,那會更好。使用Satis,您只需添加一次您的私人存儲庫 - 然後,您是否重複一個URL並不重要。添加新軟件包只能在Satis配置中完成一次,然後隨處可用。

+0

我很害怕這會發生。我想我會遊說我們的Subversion版本庫以更標準的方式安排。否則,我會看看我是否可以實施Satis解決方案。謝謝! – CXJ

+1

優化您的SVN並不會真正幫助您 - 您將獲得僅爲每個軟件包寫兩行而不是三行的好處。選擇Satis選項,它可以幫助您獨立於軟件包託管的類型和風格。它也將允許您從Github或其他地方獲得您正在使用的軟件包的本地副本。 (以防萬一你在部署時覺得Github停機不方便)。 – Sven

+0

謝謝您的額外建議。事實上,我有一個自己的軟件包的大型圖書館,還有一羣我從Github/Packagist使用的軟件包。所以Satis似乎是首選。 – CXJ