2016-06-10 46 views
6

我的目標是有一個composer.json文件致力於爲我們的項目庫,指定什麼主題(S)或插件(S)應該用於該項目,當一個開發商拉下回購他們所需要做的就是運行作曲家安裝。我們希望讓項目回購中的插件停止,以防止項目回購的膨脹,並且拖延和推進變得緩慢。創建SATIS作曲家私人倉庫爲WordPress主題和插件

對於標準的WordPress插件,如「通過WordPress.com的Jetpack」,這是罰款,我們將使用https://wpackagist.org/。然而,對於付費的插件和定製內置的無法開源的Premium,我們希望將它們託管在Private Composer存儲庫中。

因爲我們將這些插件的多個版本,我想所有版本顯示如1.1,1.2,1.3,因此開發人員可以在需要的版本composer.json,例如指定如果未來的版本發生故障,我們需要回滾到以前的版本。

我已經通讀了設置Satis私有存儲庫的基礎知識,我已經這樣做了,但是我無法通過這些版本的git標籤來循環,還指定了它的一個Wordpress插件並將其安裝在正確的位置。

這是我第一次嘗試中,它得到所有的Git標記版本:

{ 
    "name": "Private Repository", 
    "homepage": "http://packages.privaterepo.com", 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "[email protected]:companyname/project.git" 
     } 
    ], 
    "require-all": true 
} 

這是一個在那裏我有指定版本,但得到它在正確安裝WordPress插件位置:

{ 
    "name": "Private Repository", 
    "homepage": "http://packages.privaterepo.com", 
    "repositories": [ 
     { 
      "type": "package", 
      "package": { 
       "name": "company/project", 
       "description": "WordPress Plugin", 
       "version": "1.0", 
       "source": { 
        "type": "git", 
        "url": "[email protected]:company/project.git", 
        "reference": "origin/master" 
       }, 
       "type": "wordpress-plugin", 
       "require": { 
        "php": ">=5.3.2", 
        "composer/installers": "*" 
       } 
      } 
     } 
    ], 
    "require-all": true, 
    "require-dependencies": true, 
    "extra": { 
     "installer-paths": { 
      "wp-content/plugins/{$name}/": ["type:wordpress-plugin"] 
     } 
    } 
} 

任何人都可以建議如何讓這兩個場景一起工作嗎?

+0

我做了一件非常類似於你的事情,唯一的區別是我可以看到的是我不使用require-all,我需要它們都是一一的(所以「require」:{然後是一個列表)。這適用於我和私人插件安裝與wpackagist的等等...... –

+0

哪個版本的代碼是指第一個還是第二個? –

+0

對不起菲爾,第二。而對於參考資料來源)我使用的是標籤。 –

回答

0

我想我有一個類似的設置:在本地賽帝回購,我們有一個私人的Git服務器內部的包,並從GitHub所有外部包。

關鍵是要做好兩個步驟:第一步只翻出所有外部包的元數據,而這正是你的版本範圍發揮作用,以避免拉扯一切。

第二步將通過掃描所有本地的Git回購和檢測所有版本,另外將增加在一步創建的作曲家回購1

有效地你會處理,這將產生兩個結果的兩個賽帝配置,來自外部軟件包的第一個作業的結果將僅獲取所有元數據,並且在第二步中,它將像導入本地Git倉庫一樣導入和使用,並將第二步配置爲掃描「所有」版本並可能創建ZIP文件他們將爲您可能需要的每個軟件包創建一個不錯的本地備份副本。

或者換句話說:

SATIS-external.json

{ 
    "repositories": [ 
     { 
      "type":"composer", 
      "url":"https://packagist.org" 
     } 
    ], 
    "require": { 
     "any/package":">=2.0" 
    } 
    "output-html": false, 
    "require-dependencies": true 
} 

運行:

php -dmemory_limit=2G satis/bin/satis build satis-external.json external/ 

SATIS內部。JSON

{ 
    "repositories": [ 
     { 
      "type": "composer", 
      "url": "http://url/from/external/above" 
     }, 
     { 
      "type": "vcs", 
      "url": "ssh://internal/gitrepo.git" 
     } 
    ], 
    "require-all": true, 
    "archive": { 
     "directory": "dist", 
     "format": "zip", 
     "prefix-url": "https://whatever/youneed", 
     "skip-dev": true 
    } 
} 

運行此

php -dmemory_limit=2G satis/bin/satis build satis-internal.json internal/ 

添加在賽帝「類型=作曲家」庫將像任何其他存儲庫的行爲 - 尤其是它會下載有提到的所有包,如果你「規定,所有= true「,所以請小心不要直接添加Packagist或其他任何回購。

另請注意,對外部程序包的「require-dependencies」是正確的,因爲您可能不想經歷添加要使用的程序包的每個依賴項的麻煩。

如果您的某些付費軟件包提供遠程回購訪問,您可以在外部配置中添加此回購以及訪問憑證 - 它應該可以工作。

+0

哦,太好了:-1票沒有評論什麼沒有幫助該用戶。 – Sven