使用SBT扫描已编译的类

时间:2016-10-18 15:23:38

标签: scala sbt bytecode

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

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

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

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

  (compiled: Analysis) ⇒ {
    ???
  }

}

但实际上我现在不知道如何从这个compiled: Analysis对象中正确获取生成的类?

我可以从compiled.apis.internal.values.map(_.api()...)获取有关我课程的一些信息,但不会太多。

还有compiled.relations.classescompiled.stamps.allBinaries以及许多其他内容,但我无法理解我应该使用什么来获取已编译的类文件。

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

1 个答案:

答案 0 :(得分:1)

最后我结束了

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

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