如何使用doc任务生成scaladoc后运行bash脚本?

Rya*_*yan 5 sbt scaladoc

我有一个简短的Bash脚本,可以对我的Scaladoc注释进行查找和替换,以生成指向第三方库的外部文档的链接.我希望每次使用doc任务生成Scaladocs时都会运行此脚本.

我怎样才能做到这一点?

Dan*_*ral 5

这实际上非常简单.首先,我检查了doc以查看它是什么(inspect doc在sbt提示符下),注意到它是一个任务,并继续声明对自己的依赖build.sbt:

doc in Compile <<= doc in Compile map { (file) =>
  Seq("bash", "-c", "ls >tmp.log").! // CWD is sbt's current dir
  file
}
Run Code Online (Sandbox Code Playgroud)

我以前执行的那个bash是同一个库scala.sys.process,所以你可以查找Scaladoc.这是在SBT 0.12.2上测试的,我认为在SBT 0.11.x或0.10.x上可能存在小的差异.