scala - 是否需要为 Scala 2.10 上导出的宏库导出 Quasiquotes 依赖项?

标签 scala dependency-management scala-macros

我刚刚更新了一个在 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/

相关文章:

scala - 试图理解“最终抽象类 Int private extends AnyVal in Scala

scala - 如何测试客户端 Akka HTTP

引用注释宏生成的方法时,Scaladoc 生成失败

Scala:在运行时替换方法

scala - 如何验证一个方法在specs2中被准确地调用了N次?

Scala REPL "paste"模式在Sublime Text 2中的ctrl-D上不退出

gradle - AndroidX KTX 导航片段和导航 ui 版本更新失败,从版本 2.2.2 到 2.3.0

java - 为什么我必须添加父 pom 的依赖项?

java - Maven:从给定代码中识别正确的依赖关系

Scala 宏检查匿名函数的树