在堆栈项目中添加依赖项?

凯文·梅瑞迪斯

运行后:

stack new my-project
cd my-project
stack setup
stack build

我想将Conduit添加为依赖项。

我通过编辑了生成的stack newstack.yaml使其具有:

extra-deps: 
- conduit-1.2.10

然后,我修改了以下内容my-project.cabal

executable my-project-exe
  hs-source-dirs:      app
  main-is:             Main.hs
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  build-depends:       base
                     , my-project
  default-language:    Haskell2010

至:

executable my-project-exe
  hs-source-dirs:      app
  main-is:             Main.hs
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  build-depends:       base
                     , my-project
                     , conduit
  default-language:    Haskell2010

当我尝试stack build以下操作时:

$cat app/Main.hs

module Main where

import Conduit
import Lib

main :: IO ()
main = someFunc

它失败:

$stack build
mtl-2.2.1: using precompiled package
primitive-0.6.1.0: using precompiled package
stm-2.4.4.1: using precompiled package
transformers-compat-0.5.1.4: using precompiled package
exceptions-0.8.3: using precompiled package
mmorph-1.0.9: using precompiled package
transformers-base-0.4.4: using precompiled package
monad-control-1.0.1.0: using precompiled package
lifted-base-0.2.3.10: using precompiled package
resourcet-1.1.9: using precompiled package
conduit-1.2.10: configure
conduit-1.2.10: build
conduit-1.2.10: copy/register
my-project-0.1.0.0: configure (lib + exe)
Configuring my-project-0.1.0.0...
my-project-0.1.0.0: build (lib + exe)
Preprocessing library my-project-0.1.0.0...
[1 of 1] Compiling Lib              ( src/Lib.hs, .stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Lib.o )
Preprocessing executable 'my-project-exe' for my-project-0.1.0.0...
[1 of 1] Compiling Main             ( app/Main.hs, .stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/my-project-exe/my-project-exe-tmp/Main.o )

/Users/kevinmeredith/Workspace/conduit_sandbox/my-project/app/Main.hs:3:1: error:
    Failed to load interface for ‘Conduit’
    Use -v to see a list of the files searched for.
Completed 12 action(s).

--  While building package my-project-0.1.0.0 using:
      /Users/kevinmeredith/.stack/setup-exe-cache/x86_64-osx/Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-work/dist/x86_64-osx/Cabal-1.24.2.0 build lib:my-project exe:my-project-exe --ghc-options " -ddump-hi -ddump-to-file"
    Process exited with code: ExitFailure 1

如何正确添加conduit

将库添加到stack项目时,是否需要同时编辑stack.yaml和和/或my-project.cabal

埃里克

如果查看导管的线槽,请注意要导入的模块不是Conduit,而是Data.Conduit

Conduit模块来自conduit-combinators包装。如果这是您要使用的软件包,请按照以下步骤进行调整import Conduit

executable my-project-exe
  hs-source-dirs:      app
  main-is:             Main.hs
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  build-depends:       base
                     , my-project
                     , conduit-combinators
  default-language:    Haskell2010

包之间的差异总结如下(摘自项目的自述文件)。

  • conduit-combinators:提供大量内置的常用功能
  • conduit:定义核心数据类型和原始函数
  • conduit-extra:增加了对许多常见的底层操作的支持

旁注:您无需对stack.yaml文件进行任何更改,因为这两个软件包都可堆叠使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将Maven项目添加为Maven项目中的依赖项

在MAVEN多模块项目中的何处添加依赖项

无法将Mapper添加为Lift项目中的依赖项

使用IntelliJ,如何在sbt项目中添加依赖项

Nuget 依赖项未添加到项目中

在依赖项目中作为依赖项添加时,有没有办法引用 pom?

如何在Spring-boot多模块Java 11项目中添加Spark依赖项

将多个项目本身添加为另一个项目中的依赖项

如何将gradle作为依赖项添加到子项目根项目中?

如何在Haskell Stack + Nix项目中将Nix项目添加为依赖项

在Maven项目中查找依赖项(反向依赖项)

在项目中本地安装Python依赖项

分析Java项目中的JAR依赖项

IntelliJ项目中的Maven依赖项

扫描CMake项目中的依赖项很慢

如何从添加为依赖项的另一个项目中读取项目中定义的属性值

Gradle:如何指定库的两个源集并在项目中添加依赖项

将Spring for android依赖项添加到Gradle + Android Studio项目中

<Maven>如何在Maven项目中将类文件添加为依赖项(不是jar)?

在Flutter项目中使用Xcode中的Swift Package Manager添加依赖项时生成错误

如何在另一个项目中向Spring Boot Jar添加依赖项?

如何将com.typesafe.sbt。*依赖项添加到我的项目中?

无法将JPA依赖项添加到spring-boot项目中

如何将scalatest依赖项添加到现有的scala / lift项目中?

将lombok依赖项添加到我的项目中时,TypeNotPresentExceptionProxy

错误:我添加新依赖项时,项目中的任务':app:dexDebug'错误执行失败

如何在多平台Kotlin /本机intellij项目中添加依赖项?

无法将Gradle依赖项添加到我的代号一个项目中

如何从Android Studio中的自定义插件的操作中动态添加项目中的依赖项?