私は自分のプロジェクトで SBT を使用していますが、最近マクロを追加することにしました。
だから私はこのプロジェクトの例に従いました:
https://github.com/adamw/scala-macro-debug/tree/15fc8af48a6e7772c44b726513949a8ac9c9e3b7
私はこれproject/Build.scala
を持っています:
object ScalaMacroDebugBuild extends Build {
import BuildSettings._
lazy val root: Project = Project(
"root",
file("."),
settings = buildSettings) aggregate (macros, src)
lazy val macros: Project = Project(
"macros",
file("macros"),
settings = buildSettings ++ Seq(
libraryDependencies <+= (scalaVersion)("org.scala-lang" % "scala-compiler" % _)))
lazy val src: Project = Project(
"src",
file("src"),
settings = buildSettings) dependsOn (macros)
}
私のディレクトリ構造は次のとおりです。
MyProject
src macros project build.sbt
main test Build.scala
scala java scala java
したがって、SBT は src の下ですべてをコンパイルしており、問題なく動作します。
しかし、マクロ ディレクトリ内のファイルをコンパイルすると、src ディレクトリ内のファイルで使用できないため、コンパイル エラーが発生します。
マクロをコンパイルして利用可能にし、それを使用するプロジェクトがそれを見つけられるようにするにはどうすればよいですか?