为Haskell项目安排辅助任务
在开发或测试项目时,我通常需要执行一些重复的辅助任务。例如:下载一些数据、设置数据库、清理日志等。在Ruby land中,它们由为Haskell项目安排辅助任务,haskell,Haskell,在开发或测试项目时,我通常需要执行一些重复的辅助任务。例如:下载一些数据、设置数据库、清理日志等。在Ruby land中,它们由rake处理,而其他语言则更喜欢make或其他东西(任务有时依赖于其他任务,因此我们可能偶尔需要一个任务来执行它所依赖的子任务) 那么,在Haskell项目中是否有一些常规的方法来组织这些任务? 我假设cabal可以用于此,但并不是所有这些辅助任务都是关于运行Haskell代码的:有时只是执行rm-r日志/*.log或使用wget或curl下载一些数据。让阴谋集团的测试
rake
处理,而其他语言则更喜欢make
或其他东西(任务有时依赖于其他任务,因此我们可能偶尔需要一个任务来执行它所依赖的子任务)
那么,在Haskell项目中是否有一些常规的方法来组织这些任务?
我假设cabal
可以用于此,但并不是所有这些辅助任务都是关于运行Haskell代码的:有时只是执行rm-r日志/*.log
或使用wget
或curl
下载一些数据。让阴谋集团的测试目标依赖于其他阴谋集团目标,呃,运行Haskell代码中的shell脚本/命令,这有意义吗?(如果阴谋集团中可能有从属目标?)
或者,我可以使用make
,但“一个普通的haskeller”(例如,“外部”项目贡献者)会觉得这很直观吗?我相信人们会先尝试cabaltest
,然后才发现它需要先为测试设置数据库,然后运行整个其他任务链。人们会首先注意到一个Makefile
我在Haskell项目中找不到任何处理这些辅助任务的方法。据我所知,Haskell项目中没有事实上的标准工具
但最近我听说,一个用Haskell编写的一元构建系统。注意,make
通常不出现在Windows上。(但同样地,wget
或curl
或类似的都不是。)记住,并不是每个平台都是Unix。对于我的小项目,Shake看起来很重要,但在处理更大的项目时,我会记住它。我想我现在还是用make吧。谢谢你的提示!