我刚刚更新了一个在2.10下使用macro-paradise 2.0快照的项目;使用宏天堂2.0的最终版本,当我在2.10(而不是2.11)下编译时,它会告诉我以下内容:
Scala 2.10的宏观天堂中的Quasiquotes需要依赖于支持库。将以下行添加到您的SBT构建中:libraryDependencies + =“org.scalamacros”%%“quasiquotes”%“2.0.0”
现在我很担心,因为这种依赖性会成为我发布的Maven工件的常规依赖项。这真的是这样吗?或者Quasiquotes可能只是发布工件不需要的编译时依赖项?
如果是这样,我应该through these hoops去除伪影,即% "compileonly"
?
答案 0 :(得分:1)
好吧,我刚刚尝试了链接问题中的方法来创建一个特殊的"compileonly"
配置,从而将其从导出的POM中删除。即使没有Quasiquotes,也可以在Scala 2.10中使用该库。
答案 1 :(得分:1)
使用Scala 2.10的最新版天堂提供的quasiquotes的宏,即2.0.0-M4 +,包括2.0.0及更高版本,几乎总是要求支持库在扩展时在类路径上(非常简单的quasiquotes don不需要图书馆,但这种情况非常罕见。
因此,如果您希望库的用户也使用您使用quasiquotes编写的宏,则需要在pom文件中导出"org.scalamacros" %% "quasiquotes" % "2.x.y"
或依赖其他人为您的用户提供此依赖关系