Я использую 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, поэтому я получаю ошибку компиляции.
Как мне скомпилировать мои макросы, а затем сделать их доступными, чтобы проект, использующий их, мог их найти?
tree
. Я дам правильный ответ ниже. - person Mark Harrah   schedule 17.12.2012