mir*_*val 5 scala sbt scala-macros scala-macro-paradise sbt-plugin
我正在写一个SBT插件.我想使用Circe JSON库,但它需要Scala 2.10上的Macro Paradise编译器插件.
通常,您将编译器插件添加到build.sbtSBT插件project/plugins.sbt.
现在,当您构建SBT插件时,其他插件将成为依赖项,因此您将它们放入并将build.sbt它们传播到您使用SBT插件的项目.
当我将以下片段放入build.sbt我的SBT插件时:
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full)
Run Code Online (Sandbox Code Playgroud)
Paradise编译器插件是否会传播到下游项目?
默认情况下,编译器插件不会传播,但实际上下游用户需要它们作为依赖项,并且您无法绕过此要求.
原因很简单,它们的代码将在不同的编译单元中编译,因此只要您具有依赖于将在最终代码库中找到的编译器插件的功能,您还需要在此插件上添加注释显式添加依赖项.
希望这会有所帮助,例如在这里真正流行的Monocle lib .例如,没有天堂,注释就不会扩展,所以这都是最终用户需要的问题.
引用
如果要使用@Lenses等宏注释,还需要包括:
addCompilerPlugin("org.scalamacros" %% "paradise" % "2.1.0" cross CrossVersion.full)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1130 次 |
| 最近记录: |