如何让堆栈看到依赖关系?
How to Make Stack See Dependencies?
我有两个堆栈项目,A 和 B。B 依赖于 A; B的stack.yaml如下:
resolver: lts-12.10
packages:
- .
- ../path/to/A/
A目录下存在文件../path/to/A/stack.yaml,stack build
构建成功
在 B 的目录中,我 stack build --ghc-options -v
和堆栈构建 A,然后继续尝试构建 B,但未能找到 A 的模块。我不知道堆栈是如何工作的,但详细的输出显示 GHC 只在 ./.stack-work 和 ./src/ 中查找 - 而不是在 A 的目录中。 运行 stack dot
生成一个包含节点 A 和 B 的图表,但它们之间没有箭头。这就像堆栈看到 A 但不是 B 的依赖。
stack solver
报告无需进行任何更改。
使用最新的堆栈 (v1.7.1)
在 上找到了答案:我遗漏的部分是将 A 的包名称添加到 B 的 package.yaml
文件中的 dependencies
列表中。这并没有发生在更早的时候,因为我错误地认为 dependencies
仅适用于上游存储库包。
我有两个堆栈项目,A 和 B。B 依赖于 A; B的stack.yaml如下:
resolver: lts-12.10
packages:
- .
- ../path/to/A/
A目录下存在文件../path/to/A/stack.yaml,stack build
构建成功
在 B 的目录中,我 stack build --ghc-options -v
和堆栈构建 A,然后继续尝试构建 B,但未能找到 A 的模块。我不知道堆栈是如何工作的,但详细的输出显示 GHC 只在 ./.stack-work 和 ./src/ 中查找 - 而不是在 A 的目录中。 运行 stack dot
生成一个包含节点 A 和 B 的图表,但它们之间没有箭头。这就像堆栈看到 A 但不是 B 的依赖。
stack solver
报告无需进行任何更改。
使用最新的堆栈 (v1.7.1)
在 package.yaml
文件中的 dependencies
列表中。这并没有发生在更早的时候,因为我错误地认为 dependencies
仅适用于上游存储库包。