2016-09-23 2 views
2

私はマクロ呼び出しに依存するいくつかのコードを持っています。私の場合、マクロコード反復型Tのフィールド上及び再帰自分の名前を返す:マクロを呼び出すクラスの再コンパイルを強制するには?

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

BarMyMacroそれぞれが別々の独立したサブプロジェクトで定義されています。

ここで、フィールドの追加や削除など、バーを変更すると、手動でクリーニングや再コンパイルを行わなければ、リストに変更が反映されません。

sbtにこのようなケースを再コンパイルするよう指示する方法はありますか?

ps。同様の質問にはherehereと尋ねられました。

+0

は、sbtの既知の問題のようです:https://github.com/sbt/sbt/issues/1729 – lapislazuli

答えて

0

あなたはBarが変更されるたびに再コンパイルすることを強制するためにMyMacrodependsOnを使用することができます。 lazy val MyMacroProject = project.dependsOn(BarProject)のようなものです。

+0

こんにちは、すばらしい返答をいただきありがとうございます。残念ながら、これは動作していないようです。このソリューションは、非常に一般的なマクロではありません。タイプTで動作するはずですが、マクロサブプロジェクトがすでに依存しています。まだそれはトリックをしません。 – lapislazuli

関連する問題