Metithllo对来自github项目

时间:2017-02-12 15:10:40

标签: github pharo metacello

如何直接依赖github repo中的包? (假设项目没有基线,或者有理由不使用基线。)

我已尝试过以下规范

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

然而它失败了(无法解决:Magritte-XMLBinding [Magritte-XMLBinding.package] ),并且在回购下的Monticello浏览器中我只看到Magritte-Tests-XMLBinding

此外,当我查看解压缩的仓库(github-cache/)时,只有Magritte-Tests-XMLBinding已被解压缩。

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

1 个答案:

答案 0 :(得分:3)

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

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

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

  1. 向具有基线的作者发送拉取请求
  2. 与项目作者联系并要求添加基线
  3. 使用原始源代替github镜像