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

2024-01-05

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

当通过调用 SBT 添加编译器插件时addCompilerPlugin然后添加库依赖项。相关方法有:

  /** 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)")没有成功。


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

就我而言,我只想在测试期间激活 SemanticDB 编译器插件。这可以通过以下 SBT 设置来完成:

    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",
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅为测试源添加 Scala 编译器插件 的相关文章

  • 为什么 Scala 选项的 foreach 比 get 更好?

    为什么使用foreach map flatMap等被认为比使用更好get对于 Scala 选项 如果我使用isEmpty我可以打电话get安全 好吧 这又回到了 告诉 不要问 考虑这两行 if opt isDefined println o
  • 使用空/空字段值创建新的数据框

    我正在从现有数据帧创建一个新数据帧 但需要在这个新 DF 中添加新列 下面代码中的 field1 我该怎么做 工作示例代码示例将不胜感激 val edwDf omniDataFrame withColumn field1 callUDF v
  • 在 Play 上强制实施 SSL!框架

    我目前正在使用 Play 1 2 2 及其新的 Netty 客户端框架 尽管可以让 HTTP 和 HTTPS 异步服务 但我还没有找到一种简单的方法来强制执行 SSL 有没有人使用过 Play 有强制实施 SSL 的简单方法吗 不确定我是否
  • 使方法真正内联

    我伪造了一个简单的例子来检查 inline注释行为 import scala annotation tailrec object InlineTest extends App inline private def corec x Int I
  • 当我在 scala 中使用全局映射变量而不广播时会发生什么

    在 scala 中 当我在 scala 中使用全局映射变量而不进行广播时会发生什么 例如 如果我使用变量collect 例如collectAsMap 看来它是一个全局变量 我可以在所有地方使用它RDD mapValues 函数无需显式广播它
  • 包含一些 F[_] 的元组/hlist 上的通用变换/折叠/映射

    我最近问映射并减少 折叠 scalaz Validation 的 HList https stackoverflow com questions 26410100 并得到了关于如何转换固定大小的元组的一个很好的答案Va T 这是一个别名sc
  • Scala 将字符串转换为映射

    转换这个最快的方法是什么 a ab b cd c cd d de e ef f fg 进入 scala 中的可变映射 我从 500MB 文件中读取了这个输入字符串 这就是我关心速度的原因 如果您的 JSON 像您的示例一样简单 即一系列键
  • 生成 k 个成对独立的哈希函数

    我正在尝试实施一个计数最小草图 http en wikipedia org wiki Count Min sketchScala中的算法 所以我需要生成k个成对独立的哈希函数 这是一个比我以前编写过的任何东西都低的级别 除了算法类之外 我对
  • 验证是否存在唯一字符串的组合

    class Details String name String age String email String location 1 如果有详细信息列表 如下所示List
  • 当恰好有一个选项非空时执行某项操作

    如果两个选项之一非空 我想计算一些东西 显然这可以通过模式匹配来完成 但是有更好的方法吗 o1 o2 match case Some o None gt Some compute o case None Some o gt Some com
  • Scala 插入列表中的特定位置

    这是我确实解决的问题 但是作为一个完全命令式的 Scala 菜鸟 我觉得我发现了一些完全不优雅的东西 任何改进的想法表示赞赏 val l1 4 1 2 3 4 Nil original list val insert List 88 99
  • zip 样式 @repeat 嵌套形式

    repeat非常有用 然而 我遇到了嵌套表单的障碍 我需要制作一个比赛日程表 它有 2 个属性 日程数据 比赛日期 时间 地点 对手 和提交球队备注 例如 由于冬季风暴 1 月 7 日的比赛已移至1 月 9 日在 夏威夷 表单映射基于 ca
  • 使用值类参数的 Mockito 存根方法失败并出现 NullPointerException

    使用类型化值类作为 ID 是 Scala 中的常见模式 然而 在存根以值类作为参数的方法时 Mockito 似乎遇到了问题 在下面的示例中 第一个具有实际值的存根工作得很好 但第二个使用参数匹配器的存根会抛出 NullPointerExce
  • Scala 中的 Case 对象与枚举

    是否有关于何时使用的最佳实践指南案例类 http en wikipedia org wiki Scala 28programming language 29 Case classes and pattern matching 或 case
  • Scala Eclipse 自动完成功能损坏?

    我正在尝试让自动完成功能在 Eclipse 中用于 Scala 开发 我试图从 Scala 类引用 java 类 但自动完成功能从未找到它 例如 以这个 scala 类为例 object Main def main args Array S
  • 如何在不进行硬编码的情况下使用 Cake 模式进行依赖注入?

    我刚刚阅读并享受蛋糕图案文章 http jonasboner com real world scala dependency injection di 然而 在我看来 使用依赖项注入的关键原因之一是您可以改变 XML 文件或命令行参数所使用
  • 我需要比较两个数据帧以进行类型验证并发送非零值作为输出

    我正在比较两个数据帧 基本上 这些是两个不同数据源的模式 一个来自 hive 另一个来自 SAS9 2 我需要验证两个数据源的结构 因此我将模式转换为两个数据帧 它们是 SAS 架构将采用以下格式 scala gt metadata sho
  • JavaFX 控制器如何访问其他服务?

    我将 JavaFX 2 与 Scala 一起使用 我有class Application extends javafx application Application它执行诸如读取应用程序配置等操作 然后它会启动主窗口 该主窗口需要连接到一
  • java.lang.RuntimeException:不支持的文字类型类org.joda.time.DateTime

    我在一个使用库的项目中工作 这对我来说非常新 尽管我在其他项目中使用它 没有任何问题 org joda time DateTime 所以我和Scala 并将项目作为作业运行数据块 scala版本 2 11 12 根据我到目前为止的调查 异常
  • 如何列出Resources文件夹中的所有文件(java/scala)

    我正在编写一个函数 需要访问资源中的文件夹 并循环遍历所有文件名 如果这些文件符合条件 则加载这些文件 new File getClass getResource images sprites getPath listFiles 返回空指针

随机推荐

  • Bower安装目录更改:有时会附加版本

    我有一个使用凉亭的项目 我的 Bower json name myproject version 0 0 0 dependencies angular sanitize 1 2 1 然后我运行 Bower install 然后我可以看到安装
  • 无法从 Bootstrap 弹出窗口中的输入元素获取值

    我正在尝试从 Bootstrap Popover 中放置的一些输入字段中获取值 但我得到空字符串 复杂性 表单中有一个按钮 当您单击此按钮时 会出现一个弹出窗口 其中包含 2 个输入字段和一个按钮 我想在单击按钮时捕获这两个字段的值 如果我
  • HTTP 请求返回状态码 0 意味着什么?

    当 JavaScript 网络调用 例如 fetch 或 XMLHttpRequest 或任何其他类型的 HTTP 网络请求失败且 HTTP 状态代码为 0 时 这意味着什么 这似乎不是有效的 HTTP 状态代码 因为 HTTP 规范中的其
  • 用于调试远程计算机问题的技术和工具?

    用户一直在报告我无法在我的机器上重现的问题 崩溃 错误 我发现这些问题很难解决 我已经开始使用 EurekaLog 太棒了 和 SmartInspect 这两个工具都有很大帮助 但我仍然发现很难发现一些问题 我刚刚购买大卫 阿甘斯的调试 h
  • System.Net.Http.Formatting.FormUrlEncodedMediaTypeFormatter 错误

    我正在尝试将我的 asp net 项目从 Mvc 4 升级到 5 我按照以下说明操作 http www asp net mvc tutorials mvc 5 how to upgrade an aspnet mvc 4 and web a
  • 是否保证 LINQ 从 XDocument 读取项目的顺序?

    因此 我正在做的是使用 xml 文档来确定数据库更新需要运行某些 SQL 脚本的顺序 XML 遵循此格式
  • Uvicorn 中使用 FastAPI 进行信号处理

    我有一个应用程序使用Uvicorn with FastAPI 我还打开了一些连接 例如MongoDB 一旦出现某些信号 我想优雅地关闭这些连接 SIGINT SIGTERM and SIGKILL My server py file imp
  • Javascript 正则表达式 - 删除除分号之外的所有特殊字符

    在javascript中 如何从字符串中删除除分号之外的所有特殊字符 示例字符串 ABC D A b c Qwerty 应该返回 ABCDAbc Qwerty 您可以使用正则表达式删除任何不是字母字符或分号的内容 如下所示 A Za z g
  • 模块化和面向对象编程之间的最大区别是什么?

    面向对象的程序通常包含不同类型的 对象 每个对象对应于一种特定类型的复杂数据 管理 或者可能是现实世界的对象或概念 例如银行 帐户 曲棍球运动员或推土机 模块化编程 也称为 自顶向下设计 和 逐步设计 细化 是一种软件设计技术 强调分离 将
  • 发布版本中的错误在调试模式下不存在的常见原因

    仅在发布编译模式下出现但在调试模式下不会出现的错误和异常程序行为的典型原因是什么 很多时候 在 C 的调试模式下 所有变量都初始化为 null 而在发布模式下 除非明确说明 否则不会发生同样的情况 检查是否有任何调试宏和未初始化的变量 你的
  • 在Rails中,我应该启用serve_static_assets吗?

    我目前正在使用 Apache 代理到 Thin 使用这个article http articles slicehost com 2008 5 6 ubuntu hardy apache rails and thin 我的静态资源都不起作用
  • 解决 android studio 中的 gradle 依赖问题?

    我正在尝试添加一个样式化的进度条https android arsenal com details 1 1375 https android arsenal com details 1 1375 那里说 将特定存储库添加到您的构建文件中 r
  • iOS 9 和 Swift 2 升级后,Facebook SDK 登录时出现“以“null”打开此页面”模式

    我正在将项目更新到 Swift 2 和 iOS 9 我正在做的项目之一严重依赖 Facebook 的 SDK 我用它来登录 获取用户信息等 在更新之前 一旦您登录 Safari 就会将您直接重定向到该应用程序 现在我得到一个有趣的小模态 显
  • 静态分析警告是否会使 CI 构建失败?

    我们的团队正在研究项目中静态分析的各种选项 并且对于我们是否希望我们的持续集成构建因静态分析的警告而失败有不同的意见 反对构建失败的论点是 规则中经常存在例外情况 而试图绕过这些例外只是为了使构建成功会降低生产力 更好的方法是在构建时生成报
  • 如何使文本输入不可编辑?

    所以我有一个文本输入
  • 使用 Guava 进行缓存

    哪些 Guava 类适合线程安全缓存 我使用组合键 它是动态构建的 所以 softKeys 没有意义 对吧 我在某处看到 ConcurentLinkedHashMap 这是要走的路吗 它已经在最近的版本中了吗 抱歉 提问方式很混乱 Upda
  • 如何在 CodeIgniter 表单验证中使用 Bootstrap 错误样式?

    我的代码有一点问题 我正在研究 bootstrap CSS 我对这个框架感到非常惊讶 这就是为什么我决定研究这个 我对 CSS 的了解确实不够 但我明白一点 我正在创建一个表单 如果用户名或密码错误 我希望收到一条验证消息 我需要进行验证
  • 如何在我的应用程序中使用 UIKit 本地化字符串

    我们正在构建一款 iOS 游戏 我们公司需要取消按钮UIAlertView应始终根据用户的设备语言进行本地化 看起来UIKit框架中有这样一个字符串 我如何在我自己的应用程序中访问它 或者 还有其他方法可以创建带有本地化取消按钮的 UIAl
  • SQL 手机号码验证

    我有我的 SQL 数据库 我想在其中过滤掉所有有效的手机号码 我目前使用如下 WHERE pn PhoneNumber LIKE 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 OR pn Phone
  • 如何仅为测试源添加 Scala 编译器插件

    是否可以仅在编译测试源时添加Scala编译器插件 当通过调用 SBT 添加编译器插件时addCompilerPlugin然后添加库依赖项 相关方法有 Transforms dependency to be in the auto compi