我在我的项目中使用 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 目录中的文件无法使用它,因此出现编译错误。
如何编译我的宏,然后让它们可用,以便使用它的项目可以找到它?