我刚刚更新了一个在 2.10 下使用 macro-paradise 2.0 snapshot 的项目;在 macro-paradise 2.0 的最终版本中,当我在 2.10(而非 2.11)下编译时,它告诉我以下内容:
Quasiquotes in macro paradise for Scala 2.10 require a dependency on a supporting library. Add the following line to your SBT build: libraryDependencies += "org.scalamacros" %% "quasiquotes" % "2.0.0"
现在我很担心,因为该依赖项作为我发布的 Maven 工件的常规依赖项出现。真的是这样吗?还是 Quasiquotes 可能只是一个编译时依赖项,已发布的工件不需要它?
如果是这样,我应该去吗through these hoops摆脱工件,即 % "compileonly"
?
最佳答案
使用 Scala 2.10 天堂的最新版本提供的准引号的宏,即 2.0.0-M4+,包括 2.0.0 和更高版本,在扩展时几乎总是要求支持库位于类路径上(非常简单的准引号不'需要库,但这种情况很少见)。
因此,如果您希望图书馆的用户也使用您用准引号编写的宏,您需要导出 "org.scalamacros"%% "quasiquotes"% "2.x.y"
在您的 pom 文件中或依靠其他人为您的用户提供此依赖项。
关于scala - 是否需要为 Scala 2.10 上导出的宏库导出 Quasiquotes 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24386047/