倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

2014年10月31日

日記

最近、sbt でマクロを含んだプロジェクトをそのままではコンパイルできなくて悩んでる。 マルチプロジェクトにすれば解決はするのでいいんだけど、これを機に sbt のドキュメントを読み直し。 前に読もうとしたときには全く意味分からんかったけど(Scala 自体あんまりコード書いたことなかったし)、今読み返してみるとまぁなんとか読み進められる程度には進歩した。

ところで、ソースディレクトリの変更(または追加)の仕方が書いてたので、マクロコードを配置する「src/main/macro」というソースディレクトリを以下のように追加して

sourceDirectories := Seq(file("src/main/macro"), file("src/main/scala"))
// もしくは
 sourceDirectories in Compile := Seq(file("src/main/macro"), file("src/main/scala"))

マクロを含むプロジェクトを追加してみたんだけどうまくコンパイルできんかった。 マクロコードと通常の Scala コードを同一のソースディレクトリに配置したときとは違った失敗の仕方で、単にマクロを定義したクラス(オブジェクト)が見つけられない模様。 なんかクラスパスとかおかしいのかな? なんか、コンパイル自体がされてないような・・・ まだ原因が分からないのでこの3連休(!)であれこれ試してみよう。

ただ、ちょっと我に返ってみると、今遊びで作ってるプロジェクト、ちゃんと作っていけばいくほどマクロが不必要になっていきそうでちょっと怖い(笑) いや、普通そういうもんかな?

Scalaスケーラブルプログラミング第2版

Scalaスケーラブルプログラミング第2版

Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築

Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築


ツイート