如何强制重新编译调用宏的类?

时间:2016-09-23 09:31:23

标签: scala sbt scala-macros

我有一些依赖于宏调用的代码。在我的例子中,宏代码迭代类型T的字段并递归返回它们的名称:

object Foo{
  val bar:List[String] = MyMacroClass.fieldNames[Bar]
}

BarMyMacro各自在不同的独立子项目中定义。

现在当我对Bar进行更改时,如添加或删除字段,如果我不手动清理和重新编译,列表将不会反映更改。

有没有办法告诉sbt重新编译这种情况?

PS。类似的问题被问到herehere

1 个答案:

答案 0 :(得分:0)

您可以在Bar中使用dependsOn强制每次lazy val MyMacroProject = project.dependsOn(BarProject)更改时重新编译。类似于data[strlen(data)] = c; data[strlen(data)+1] = '\0';