2015-10-17 29 views
5

假設我想創建一個包的收集,比如烹飪。 我將有一個核心的包叫做烹飪然後我想多烘焙包:如何防止使用dart軟件包的gitub repo擴散?

  • 烹飪,墨西哥
  • 烹飪印
  • 烹飪泰

每個人都會用做飯。未來可能會創建更常見的軟件包。在github中設置這個 結構的方法是什麼,這樣你就不必爲每個結構創建一個 單獨的回購,但仍然允許客戶端項目只需將它們所需的包裝拉出 。

軟件包可以引用github包中的路徑嗎?

從他們展示如何引用混帳酒吧依賴性頁:

dependencies: 
    cooking: 
    git: 
     url: git://github.com/munificent/cooking.git 
     ref: some-branch 

但最好我想:

dependencies: 
    cooking-indian: 
    git: 
     url: git://github.com/munificent/cooking.git 
     ref: some-branch 
     # path relative to cooking.git that has pubspec.yaml 
     path: cooking-indian 

有沒有辦法有有N包僅在一個GitHub庫一些子集可以通過pub選擇?

回答

2

您始終可以擁有一個頂級git存儲庫,其中包含單獨發佈的子文件夾中的所有包。 Pub沒有要求每個包都是回購 - 只要單個包遵守pub package layout format

如果您正在使用私人回購,您可能需要setup a private pub host而不是依賴github進行提取。

但是,pub目前不支持直接從git repos的子樹中獲取數據。如果你想投入努力來實現這個功能,你可以通過利用git的sparse checkout功能來實現。

+0

如果您希望代碼可以從pub發佈,但仍然希望開發通過git獲取特定版本,仍然會出現擴散。在git中放入多個包意味着您不能使用pubspec git選擇器功能,因爲pub需要該包作爲回購的根。 – user1338952

+0

這個請求有一個[未解決的問題](https://github.com/dart-lang/pub/issues/1305),但今天沒有人正在處理它。 我們在[build repo](https://github.com/dart-lang/build)中使用了這種模式,並且它一直運行良好,雖然在版本發佈到pub之前還有一些關於travis測試的棘手部分。 總是可以使用發佈到pub的特定版本,git依賴不是鎖定到特定版本的唯一方法。 – Nate

相關問題