首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何仅为测试源添加Scala编译器插件

如何仅为测试源添加Scala编译器插件
EN

Stack Overflow用户
提问于 2020-07-14 16:26:14
回答 1查看 101关注 0票数 2

是否可以仅在编译测试源码时添加Scala编译器插件?

当通过调用SBT的addCompilerPlugin来添加编译器插件时,就会添加一个库依赖项。相关的方法如下:

代码语言:javascript
运行
复制
  /** Transforms `dependency` to be in the auto-compiler plugin configuration. */
  def compilerPlugin(dependency: ModuleID): ModuleID =
    dependency.withConfigurations(Some("plugin->default(compile)"))

  /** Adds `dependency` to `libraryDependencies` in the auto-compiler plugin configuration. */
  def addCompilerPlugin(dependency: ModuleID): Setting[Seq[ModuleID]] =
    libraryDependencies += compilerPlugin(dependency)

如果在编译测试源码时,有一个withConfigurations导致插件只在类路径上,那么问题就可以归结为。我尝试了Some("plugin->default(testCompile)"),但没有成功。

EN

回答 1

Stack Overflow用户

发布于 2020-07-15 00:44:34

回答我自己的问题:可以通过将autoCompilerPlugins设置为false并在测试配置中手动添加必要的-Xplugin=... Scalac选项来实现。这可以通过使用Classpaths.autoPlugins实用程序方法来完成。

在我的例子中,我只想在测试期间激活SemanticDB编译器插件。这可以通过以下SBT设置来实现:

代码语言:javascript
运行
复制
    autoCompilerPlugins := false,
    ivyConfigurations += Configurations.CompilerPlugin,
    scalacOptions in Test ++= Classpaths.autoPlugins(update.value, Seq(), ScalaInstance.isDotty(scalaVersion.value)),
    scalacOptions in Test += "-Yrangepos",
    scalacOptions in Test += "-P:semanticdb:text:on",
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62890985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档