You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将cabal haddock输出重定向到其他指定文件夹?

cabal haddock 自定义输出目录的实现方法

目前有两类成熟的可行方案,可根据自己的使用场景选择:

  • 方案一:修改全局构建产物根目录
    执行cabal haddock命令时追加--builddir参数,自定义整个cabal构建工作区的根路径,haddock生成的文档会作为构建产物的一部分,存放在你指定的根目录对应的层级下。比如要把所有构建产物(含编译中间文件、文档、二进制文件)统一放到项目根目录下的build文件夹,直接执行:
    cabal haddock --builddir=./build
    
    这种方式适合完全不想使用默认dist-newstyle目录的场景,所有cabal生成的文件都会统一归集到你指定的目录,不会在项目里多出额外的构建文件夹。
  • 方案二:单独指定haddock文档输出路径,不改动其他构建产物位置
    如果只想把最终生成的haddock文档提取到自定义目录,其他编译中间产物还是保留在默认的dist-newstyle路径下,可以通过参数透传的方式,把haddock程序本身的输出目录配置传给底层程序:
    cabal haddock --haddock-options="--odir=./target-doc-folder"
    
    执行完命令后,完整的可浏览haddock文档会直接生成到你指定的./target-doc-folder路径下,不需要再去dist-newstyle下的多层嵌套目录里查找。注意这种方式下cabal仍会在默认路径下留存一份文档的关联索引文件,不影响自定义路径下文档的正常使用。

如果需要长期固定配置,不需要每次执行命令都手动加参数,可以在项目根目录创建cabal.project文件,写入对应配置即可永久生效:

-- 固定所有构建产物放到./build目录
builddir: ./build

-- 或者固定haddock文档单独输出到./docs目录
package *
  haddock-options: --odir=./docs

内容的提问来源于stack exchange,提问作者Liisi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 19:18:17