当前位置: 首页 > 知识库问答 >
问题:

如何从Scala对象中使用SBT IntegrationTest配置

马淇
2023-03-14
import sbt._

object Dependencies {
  val slf4j_api = "org.slf4j" % "slf4j-api" % "1.7.7"
  ...
}
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: _*)
  ...
}
import sbt._

object Dependencies {

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

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

IllegalArgumentException:无法向模块的配置'it'添加依赖项'jUnit#jUnit;4.11',因为该配置不存在!

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

import sbt.Configurations.IntegrationTest

IntegrationTest是在Configurations对象中定义的惰性val:

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

但这并没有解决问题。

有人有办法解决这个问题吗?

共有1个答案

南门向荣
2023-03-14

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

您的代码引号显示您在执行前者,但在引用的代码中没有显示您在哪里执行后者。

请您发布完整的配置,或尝试移动这两个周围对方?

lazy val root = (project in file(".")).
  configs(IntegrationTest).
lazy val IntegrationTest = config("it") extend (Runtime)
 类似资料:
  • 问题内容: Java代码: Scala代码: 命令行: 问题答案: 我将从使用java.util.Timer开始,而不是从javax.swing.Timer开始。除非您使用GUI运行应用程序,否则swing计时器将不起作用(即,如果您在没有特殊命令行参数的情况下通过控制台在Linux上运行它,则它将不起作用- 最好避免)。 放在一边: 请确保在尝试运行代码时,在类路径中包含scala-librar

  • 我们在基于sbt的项目中有多个项目(如下所示),并探索如何在运行时从scala对象中获得应用程序jar名称,例如“project1-v1.jar”。 使用“SBT Assembly”为每个项目创建单独的jar。

  • 问题内容: 我有一个Scala对象,需要在Java类中使用。 这是Scala对象 如何在Java中使用此Scala对象? 到目前为止,我已经尝试了以下操作,但未成功(编译错误): //返回一个没有用的字符串,因为我想要实际的Person对象 问题答案: 编辑 :一个工作示例(我检查过,它可以编译并工作):Scala: Java对应项:

  • 问题内容: 如何Foo从Java访问包对象中包含的对象? 问题答案: 也许从Scala 2.8.1开始,这已经发生了变化,但是该提议不起作用。您必须使用。 对于对象,方法等,它有所不同。考虑到scala类: 您可以访问foo,bar而baz在Java中,如: 当我试图弄清楚这一点时,我以为我们遇到了麻烦,因为Scala生成了一个名为的类,当然您不能在Java中导入该类。幸运的是,我们只需要pack

  • 问题内容: 我想从Java方法返回对Scala对象的引用。我怎样才能做到这一点? 我的Scala对象是这样的: …并且我希望我的Java方法像这样: 有没有办法做到这一点? 问题答案: 应该管用。 编辑:之所以可行,是因为这是Scala表示单例对象的方式。该类中有一个名为的字段,其中填充有该类的单个有效实例。但是还有一个叫做的类,它将所有方法复制为静态方法。这样一来,您就可以在大多数情况下像Jav

  • 问题内容: 我正在尝试kafka.utils.ZKStringSerializer用clojure创建一个scala对象。(在org.apache.kafka/kafka_2.10 “0.8.0”) 由于我对scala知之甚少,所以我不知道如何调用它的构造函数。我这样尝试过: 并得到一个错误: 我尝试使用来查看其方法,但是只有一些静态方法。并告诉我这是一类,而不是我想要的实例。 该对象的实现如下: