首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cabal中“源-存储库-包”和“本地无索引存储库”的区别

Cabal中“源-存储库-包”和“本地无索引存储库”的区别
EN

Stack Overflow用户
提问于 2021-01-12 08:17:24
回答 1查看 939关注 0票数 2

我知道我可以在将本地包添加到阴谋项目中文件的packages:部分列出它。由单个本地包组成项目的最简单示例是packages: .

cabal.project中,我还可以添加以下两项内容:

  • source-repository-package部分: 源-存储库-包类型: git位置: git@github.com:haskell-streaming/streaming.git标记: eb3073e6ada51b2bae82c15a9ef3a21ffa5f5529
  • 本地无索引存储库的定义 存储库my-本地存储库url: file+noindex://home/zzz/no-index-repo-dir

这两种方法似乎都允许我将包添加到项目中。这两者有什么区别?

(Note:这个问题与同名的source-repository:字段无关,该字段只表示与包的源代码相关联的存储库。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 08:17:24

实际上,只有source-repository-package向您的项目添加了一个“本地包”。它的行为与在packages:中列出包的源代码文件夹差不多,只是源代码是根据需要下载的。特别是,在运行cabal build时,将在cabal clean之后重新下载。

因为它是您项目中的一个本地包,其他阴谋集团项目对此并不知情。将其添加到其他本地项目需要重新编译它。

同时,本地无索引包存储库只是在本地文件系统中,从黑客或堆栈的意义上来说是存储库。可以在单个项目的cabal.project文件或全局阴谋配置(~/.cabal/config)中指定它们。

在这些存储库中找到的包不被视为项目的“本地包”。它们的库只编译一次,并在知道包存储库的所有项目之间共享(如果存储库是在~/.cabal/config中列出的,这些项目将是所有项目)。而cabal buildcabal clean之后不会触发重新编译。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65680185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档