我刚刚更新了一个在2.10下使用宏天堂2.0快照的项目;使用宏天堂2.0的最终版本,它告诉我在2.10(而不是2.11)下编译时如下所示:
Scala2.10宏天堂中的准引号要求依赖于支持库。将以下行添加到SBT构建中: libraryDependencies += "org.scalamacros“%”拟引号“% "2.0.0”
现在我很担心,因为这种依赖变成了我发布的Maven工件的常规依赖。真的是这样吗?或者,准引号也许只是一个编译时依赖关系,不应该被发布的工件所需要?
如果是这样的话,我是否应该使用through these hoops来去除工件,即% "compileonly"
发布于 2014-06-27 11:16:31
使用Scala 2.10最近版本提供的准引号的宏,即2.0.0-M4+,包括2.0.0和更高版本,在展开时几乎总是要求支持库在类路径上(非常简单的准引号不需要库,但这是非常罕见的)。
因此,如果您希望库的用户也使用您用准引号编写的宏,则需要在pom文件中导出"org.scalamacros" %% "quasiquotes" % "2.x.y",或者依赖其他人为用户提供这种依赖关系。
发布于 2014-06-25 14:49:37
我只是尝试了链接问题中的方法来创建一个特殊的"compileonly"配置,从而将其从导出的POM中删除。即使没有准引号,也可以使用Scala2.10中的库。
https://stackoverflow.com/questions/24386047
复制相似问题