取决于cabal中的本地包装

时间:2013-10-27 19:58:45

标签: haskell cabal

我写了一些包含一些额外函数的包,用于处理反映我喜欢使用它们的方式的常见类型(例如,我更喜欢将Bson文档视为地图而不是字段列表)。我将这些包保存在本地源目录中,而不是Hackage。

我想使用cabal的.cabal系统在build-depends文件中介绍这些软件包之间的依赖关系。但是这会导致以下错误(bson-docmap是本地模块):

cabal: At least the following dependencies are missing:
bson-docmap >=0.0

是否可以将cabal指向本地目录作为备用存储库?

我目前的解决方法是将所有模块保存在一个本地软件包中,但如果可能的话,我宁愿将它们分开。

2 个答案:

答案 0 :(得分:22)

如果您使用的是Cabal沙箱,那么您可以添加一个本地Cabalized目录作为源

cabal sandbox add-source path/to/project/dir

在此之后,它将可用于build-depends

答案 1 :(得分:2)

您可以使用以下内容创建./cabal.project文件:

packages:
  common/
  backend/
  frontend/

然后运行$ cabal new-build all

这里可以看到一个例子:https://github.com/ElvishJerricco/reflex-project-skeleton/blob/11c1feb/cabal.project