2017-02-12 69 views
1

如何直接依賴github軟件倉庫中的軟件包? (假設該項目沒有基線,或者還有一個原因不能使用的基線。)Metacello依賴於來自github項目的軟件包

我已經試過以下規格

spec 
    package: 'Magritte-XMLBinding' 
    with: [ spec 
     repository: 'github://magritte-metamodel/XML-Bindings:master/repository' ]. 

但是它失敗(無法解析:馬格利特 - XMLBinding [ Magritte-XMLBinding.package]),而在Monticello瀏覽器的回購下,我只看到了Magritte-Tests-XMLBinding

更重要的是,當我查看解壓後的回購(在github-cache/)時,只有Magritte-Tests-XMLBinding已被解壓縮。

未打包的Tests包是第一個按字母順序排列的,這讓我覺得Metacello規範只是抓住第一個包而沒有想到。

回答

3

當使用git(和github)時,你不能依賴於包而是在完整的項目中。但是,您可以依賴項目,但只加載該項目的一個包。 通常這個定義應該工作:

spec 
    baseline: 'XMLBindings' 
    with: [ 
     spec 
      repository: 'github://magritte-metamodel/XML-Bindings:master/repository'; 
      loads: #('Magritte-XMLBinding') ]. 

然而,雖然這個答案是正確的一般,在這種情況下它不會工作因爲項目的作者並沒有包含在任何baseline定義,將允許這那種依賴的定義工作,這表明我,他只是使用該項目作爲一個真正的鏡子......所以在這裏你有三個可能的解決方案:

  1. 發送pull請求,以此基準來創作
  2. 接觸該項目的作者,並要求增加一個基線
  3. 使用原來的源代碼而不是GitHub的鏡子
+0

從它看起來更像完全執行的行爲,因爲它下載了正確的回購,解開它,然後才它破裂(基本上在本地文件樹回購) –