尽管有堆栈求解器,但找不到模块“Test.Hspec”

Despite stack solver, Could not find module `Test.Hspec'

这是我的 stack.yaml 文件,将 hspec 声明为额外的依赖项:

# Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)
resolver: lts-3.8  

# Local packages, usually specified by relative directory name
packages:
- '.'

# Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
extra-deps:
- hspec-2.2.0

当我 运行 stack solver 时,它说没有要进行的更改:

root@5d7daa2aec0a:/src/test_stack/a-test/src# stack solver
This command is not guaranteed to give you a perfect build plan
It's possible that even with the changes generated below, you will still need to do some manual tweaking
Asking cabal to calculate a build plan, please wait
No needed changes found

To automatically modify your stack.yaml file, rerun with '--modify-stack-yaml'

这是我的源文件(只是为了检查我是否可以将 Hspec 与堆栈一起使用):

module Main where

import Test.Hspec


main :: IO ()
main = do
  putStrLn "hello world"

当我 运行 stack build 我得到:

2015-10-05 22:24:08.450413: [warn] 找不到模块 `Test.Hspec' @(stack_Bp003b8iWaELtdr693pSPs:Stack.Build.Execute src/Stack/Build/Execute .hs:1241:35)

我认为 stack solver 确保额外的依赖关系没问题。

我做错了什么? 第一次用stack。

虽然 stack 取代了用于构建和安装包的命令行工具 cabal-install,但它仍然使用 Cabal 打包基础结构。特别是,这意味着使用 stack 构建的项目仍然是带有 .cabal 文件的 Cabal 兼容包,并且它们的所有依赖项都应列在具有适当版本范围的 .cabal 文件的 build-depends 部分中。即使在 stack.yaml 文件 extra-deps 字段中也指定了依赖关系,这仍然成立,因为该字段用于不同的目的(即,为堆栈提供构建包时使用的确切版本)。