1

一个人怎么能直接依赖来自 github repo 的包呢?(假设项目没有基线,或者有理由不使用基线。)

我试过以下规格

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

但是它失败了(无法解析:Magritte-XMLBinding [Magritte-XMLBinding.package]),并且在我只看到 repo 下的 Monticello 浏览器中Magritte-Tests-XMLBinding

更重要的是,当我查看解压缩的 repo (in github-cache/) 时,只有Magritte-Tests-XMLBinding已解压缩。

解压后的Tests包是按字母顺序排列的第一个包,这让我觉得 Metacello 规范只是不假思索地抓住了第一个包。

4

1 回答 1

3

使用 git(和 github)时,您不能依赖包,而是依赖完整的项目。但是,您可以依赖于一个项目,但只加载该项目的一个包。通常这个定义应该有效:

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

然而,虽然这个答案通常是正确的,但在这种情况下它不会起作用,因为项目的作者没有包含任何baseline允许这种依赖定义工作的定义,这表明我只是将该项目用作真实的镜子......所以在这里你有三种可能的解决方案:

  1. 使用基线向作者发送拉取请求
  2. 联系项目作者并要求添加基线
  3. 使用原始源而不是 github 镜像
于 2017-02-12T17:28:20.367 回答