加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使用Scala对象的SBT IntegrationTest配置

发布时间:2020-12-16 08:44:11 所属栏目:安全 来源:网络整理
导读:为了使我们的多项目构建更易于管理,我们将Build. scala文件拆分为多个文件,例如Dependencies.scala包含所有依赖项: import sbt._object Dependencies { val slf4j_api = "org.slf4j" % "slf4j-api" % "1.7.7" ...} 我们想要为我们的构建添加集成测试.在SBT
为了使我们的多项目构建更易于管理,我们将Build. scala文件拆分为多个文件,例如Dependencies.scala包含所有依赖项:

import sbt._

object Dependencies {
  val slf4j_api = "org.slf4j" % "slf4j-api" % "1.7.7"
  ...
}

我们想要为我们的构建添加集成测试.在SBT documentation之后我们添加了

object Build extends sbt.Build {
  import Dependencies._
  import BuildSettings._
  import Version._
  import MergeStrategies.custom

  lazy val root = Project(
    id = "root",base = file("."),settings = buildSettings ++ Seq(Git.checkNoLocalChanges,TestReport.testReport)
  ).configs(IntegrationTest).settings(Defaults.itSettings: _*)
  ...
}

其中Dependencies,BuildSettings,Version和MergeStrategies是在自己的文件中定义的自定义Scala对象.

在文档之后,我们想在Dependencies.scala中为IntegrationTest配置添加一些依赖项:

import sbt._

object Dependencies {

  val slf4j_api = "org.slf4j" % "slf4j-api" % "1.7.7"

  val junit = "junit" % "junit" % "4.11" % "test,it"
...
}

不幸的是,这打破了构建:

java.lang.IllegalArgumentException: Cannot add dependency
‘junit#junit;4.11’ to configuration ‘it’ of module … because this configuration doesn’t exist!

我想我需要导入IntegrationTest配置.我尝试在Dependencies.scala中导入IntegrationTest配置:

import sbt.Configurations.IntegrationTest

IntegrationTest是Configurations对象中定义的延迟val:

object Configurations {
  ...
  lazy val IntegrationTest = config("it") extend (Runtime)
  ...
 }

但这并没有解决问题.

有人知道如何解决这个问题吗?

解决方法

在将依赖项添加到Project对象之前,需要将配置添加到Project对象.

您的代码引用显示您正在执行前者,但您没有在引用的代码中显示您在后者的位置.

请你发布完整配置,或尝试将这两个配置相互移动?

这是将配置添加到您链接到的SBT文档中的Project对象的位置:

lazy val root = (project in file(".")).
  configs(IntegrationTest).

您上面引用的代码声明了一个懒惰的val但是没有使用它是不足以让“it”配置使用:

lazy val IntegrationTest = config("it") extend (Runtime)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读