什么是sbt 0.13.x中IntegrationTest配置的最小设置?

Jac*_*ski 9 sbt

我有以下几点build.sbt:

name := "it-config-sbt-project"

scalaVersion := "2.10.4"

Defaults.itSettings

lazy val `it-config-sbt-project` = project.in(file(".")).configs(IntegrationTest)
Run Code Online (Sandbox Code Playgroud)

我怎样才能使我添加IntegrationTest配置的行更简单?

宁愿想要一个具有项目当前配置和设置的设置,例如

settings ++= Defaults.itSettings

configs += IntegrationTest
Run Code Online (Sandbox Code Playgroud)

甚至itSettings在sbt文件中使用以下行自动应用设置:

configs += IntegrationTest
Run Code Online (Sandbox Code Playgroud)

Cao*_*lte 5

我发现自己同样感到沮丧.我找到的最佳解决方案是借用Josh Suereth的Effective SBT幻灯片并创建一个项目帮助函数,为您添加IntegrationTest配置.

例如

object BasePlugin extends Plugin {
  val baseSettings = Defaults.itSettings

  def baseProject(name: String, location: String = "."): Project = (
    Project(name, file(location)) configs(IntegrationTest)
  )
}
Run Code Online (Sandbox Code Playgroud)

我把这个和其他一些设置作为一个插件,然后我的build.sbt就像这样简单

import caoilte.BasePlugin

BasePlugin.baseSettings

val helloWorld = BasePlugin.baseProject("helloWorld")
Run Code Online (Sandbox Code Playgroud)


Mar*_*rah 2

sbt 在评估设置之前需要了解委派的配置。因此,无法在设置系统内定义配置。

请注意,如果使用的配置没有extend其他配置,则不一定需要使用该configs方法将其注册到项目上。