Scala 宏注解不会扩展(宏天堂)

标签 scala compilation macros annotations sbt

我正在尝试在我的项目中包含宏注释。关注documentation ,我尝试实现他们的示例。

我知道宏模块必须在核心模块之前编译(核心是包含使用宏注释的代码的模块)。为此,我创建了以下 build.sbt(版本 1.2.8):

name := "test"

lazy val commonSettings = Seq(
  version := "0.1",
  scalaVersion := "2.12.8"
)

lazy val macros = (project in file("macros")).settings(
  commonSettings,
  libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value
)

lazy val core = (project in file("core")).settings(
  commonSettings
) dependsOn macros

我的项目结构如下:

+-- .idea
+-- core
|   +-- src
|   |   +-- java
|   |   +-- scala
|   |   |   +-- Test.scala
+-- macros
|   +-- src
|   |   +-- java
|   |   +-- scala
|   |   |   +-- identity.scala
...

但是,当我在 Test 类中使用 @identity 注释时,我仍然收到宏注释未展开的消息(由于 @compileTimeOnly("enable macro paradise展开宏注释"))。有什么想法吗?

最佳答案

添加

addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.full)

commonSettings

关于Scala 宏注解不会扩展(宏天堂),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55457246/

相关文章:

scala - 创建部分应用函数时的类型推断

java - 如何在 Linux 集群上分发和维护 java/scala 程序?

c++ - 存储三角函数调用的结果有意义吗?

c++ - 错误 : expected unqualified-id before '<' token (Template compilation issue)

c++ - 可变参数宏,用于从未知参数集合生成字符串 vector

存在类型的 Scala 类型推断

java - Scala 2.12 和 Java 8 SAM 互操作不编译

php - 如何使用 ./configure 设置变量

VBA Intellisense 仅在第一个周期后显示,在键入第一个周期后没有级别

Objective-C:类似函数的宏与。方法