cabal.project 可以有两个独立的构建单元吗?

It is possible for cabal.project to have two seperate build units?

我想避免 cabal 依赖地狱问题。

我有三个包裹。 cabal.project

packages: schema/
          client/
          server/

其中 client 取决于 schema,而 server 取决于 schema。 建筑 schema&clientschema&server 就可以了。 但是 clientserver 对同一包的两个版本具有传递依赖性。

是否可以在 cabal 中对构建单元进行分组。 所以我可以在单个 cabal.project.

下分别构建 schema&clientschema&server 以避免 cabal 中的依赖地狱

我认为不可能在一个 cabal 项目中使用两个相互冲突的包。

作为替代方案,您可以考虑制作两个项目文件,例如client.projectserver.project,并使用 --project-file cabal option.

在它们之间切换