使用 SBT 扫描编译 类

Scan compiled classes with SBT

我想创建 SBT 任务以根据这些 classes 中的注释为我的 classes 生成文档。

所以我正在创建一个任务:

val genToolsDocs = TaskKey[Unit]("gendoc-tools", "gen doc")

genToolsDocs in Runtime <<=
(compile in Compile) map {

  (compiled: Analysis) ⇒ {
    ???
  }

}

但是我现在实际上不知道如何从这个 compiled: Analysis 对象正确地生成 classes?

我可以从 compiled.apis.internal.values.map(_.api()...) 那里获得一些关于我的 class 的信息,但不会太多。

还有 compiled.relations.classescompiled.stamps.allBinaries 以及许多其他东西,但我不明白应该使用什么来编译 class 文件。

也许这是完全错误的方式,不是吗?

最后我得到了

genToolsDocs <<= (compile in Compile) map {
  (compiled: Analysis) ⇒ {
    val files = compiled.stamps.allProducts.filter(_.getPath.contains(???))
    ???
  }
}

并且在 files 现在我得到了所有编译的 类。