5

我想将我的项目组织到不同的库中,因为最终我可能会将一些拆分到外部存储库中。

在一个.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 不存在于生成的 cabal 文件中。

我也试过这个,但不出所料,其中一个库定义被覆盖了:

library:
  source-dirs:
    - src
  dependencies:
    - servant-server >= 0.14
    - wai
    - warp

library:      
  source-dirs:
    - sxapi
  dependencies:
    - servant-server >= 0.14
    - wai
    - warp    
4

1 回答 1

0

根据 hpack 的文档(https://github.com/sol/hpack#top-level-fields),您可以使用internal-libraries内部(命名)库的标头。

于 2021-08-12T18:22:53.820 回答