我想将项目组织到不同的库中,因为最终我可能会将其中的一部分拆分到外部存储库中。
在一个.cabal
文件中,我可以有多个库(我相信一个未命名和多个已命名):
library
import: servant-deps
exposed-modules:
App
other-modules:
Paths_cow_streamer
hs-source-dirs:
src
build-depends:
servant-server >= 0.15
library sxapi
import: servant-deps
exposed-modules:
SxClient
other-modules:
Paths_cow_streamer
hs-source-dirs:
sxapi
build-depends:
http-client
最初,我在hpack package.yaml
中尝试过这种方式:
library:
bar:
source-dirs:
- src
dependencies:
- servant-server >= 0.14
- wai
- warp
foo:
source-dirs:
- sxapi
dependencies:
- servant-server >= 0.14
- wai
- warp
但是在这种情况下,似乎没有一个条目被正确解释,因为例如生成的阴谋文件中没有source-dirs。
我也尝试过这种方法,但不足为奇的是,其中一个库定义被覆盖:
library:
source-dirs:
- src
dependencies:
- servant-server >= 0.14
- wai
- warp
library:
source-dirs:
- sxapi
dependencies:
- servant-server >= 0.14
- wai
- warp