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

sbt 0.13.x中IntegrationTest配置的最小设置是什么?,sbt,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) 我怎样才能使我添加的行更简单 我希望有一个项目当前配置和设置的设置,例如 settings ++= Defaults.itSettings c

我有以下
build.sbt

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

scalaVersion := "2.10.4"

Defaults.itSettings

lazy val `it-config-sbt-project` = project.in(file(".")).configs(IntegrationTest)
我怎样才能使我添加的行更简单

我希望有一个项目当前配置和设置的设置,例如

settings ++= Defaults.itSettings

configs += IntegrationTest
甚至可以使用sbt文件中的以下行自动应用
itSettings
设置:

configs += IntegrationTest

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


请注意,如果使用的配置不扩展另一个配置,则严格来说不需要使用
configs
方法在项目上注册它。

我假设您使用的是SBT 0.13,因为您的项目定义在.SBT文件中

有一个名为“自动设置”的新功能,可用于影响多个sbt文件中的组合.sbt设置

例如:

lazy val `it-config-sbt-project` = project.in(file("."))
  .autoSettings(userSettings, allPlugins, sbtFiles(file("../mysetting.sbt")), defaultSbtFiles)

我发现自己也同样感到沮丧。我找到的最好的解决方案是借用Josh Suereth的方法,创建一个project helper函数,为您添加IntegrationTest配置

乙二醇

我把这个和其他一些设置作为插件拉进来,然后我的build.sbt就这么简单了

import caoilte.BasePlugin

BasePlugin.baseSettings

val helloWorld = BasePlugin.baseProject("helloWorld")

我认为目前还没有更好的方法,但我希望知道我错了。有一种更好的方法,但不是很多-在文件(“.”)中使用
项目。configs(IntegrationTest)
@JacekLaskowski您的较短版本不适合我:
发现:sbt.project required:sbt.Def.settings定义
@Caoilte您使用的是sbt 0.13+?似乎有这样的信息。您是否使用了
lazy val
it config sbt project`=project in file(“.”)配置了集成测试
?你的整个
build.sbt`?我确实在你的OP中使用了lazy val,效果很好。我以为你在后面的评论中建议不需要lazy val,而实际上我认为你是在指出括号是可选的。
import caoilte.BasePlugin

BasePlugin.baseSettings

val helloWorld = BasePlugin.baseProject("helloWorld")