我对堆栈和haskell相对较新。在我解释我的问题之前,让我解释一下我们的开发设置。我们使用 jenkins 来构建我们的回购。 haskell项目将是更大的python项目的一小部分。 haskell项目主要用于生成工件。
jenkins master每次都会在构建git分支之前执行git clean
。我的haskell项目有一些外部依赖,如argparser
& aeson
。每次我的构建脚本执行stack build
时,这些外部依赖项都会被编译,因为当jenkins执行git clean命令时它们会被删除。
有没有告诉堆栈将外部deps下载到项目文件夹外的全局文件夹?与global-pkg-db
路径而不是.stack-work
文件夹一样?防止堆栈不重新编译外部依赖项的最佳方法是什么?
我应该下载argparser
& aeson
进入自定义文件夹并将该路径传递到extra-lib-dirs
?
# This file was automatically generated by stack init
# For more information, see: http://docs.haskellstack.org/en/stable/yaml_configuration/
# Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)
resolver: lts-5.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:
- aeson-0.11.1.1
- argparser-0.3.4
- text-1.2.2.0
# Override default flag values for local packages and extra-deps
flags: {}
# Extra package databases containing global packages
extra-package-dbs: []