【发布时间】:2012-12-06 13:42:53
【问题描述】:
我正在为我的项目使用 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 目录中的文件,所以我得到一个编译错误。
如何编译我的宏,然后让它们可用,以便使用它的项目可以找到它?
【问题讨论】:
-
构建配置看起来正确。它可能有助于格式化您的目录结构描述。这样,我们就可以判断那里是否有问题。否则,您可能需要显示示例代码和错误消息。
-
@MarkHarrah - 抱歉,我认为它已格式化。就这么做了。
-
哦,我明白了,对不起。它与
tree之类的通常输出有点不同。我会在下面给出正确的答案。
标签: sbt scala-2.10 scala-macros