我有以下build.sbt
:
name := "it-config-sbt-project"
scalaVersion := "2.10.4"
Defaults.itSettings
lazy val `it-config-sbt-project` = project.in(file(".")).configs(IntegrationTest)
我怎样才能使我添加the IntegrationTest configuration的行更简单?
我而非喜欢使用项目的当前配置和设置进行设置,例如
settings ++= Defaults.itSettings
configs += IntegrationTest
甚至自动应用itSettings
设置,并在sbt文件中使用以下行:
configs += IntegrationTest
答案 0 :(得分:5)
我发现自己同样感到沮丧。我找到的最佳解决方案是借用Josh Suereth的Effective SBT slides并创建一个项目助手函数,为您添加IntegrationTest配置。
例如
object BasePlugin extends Plugin {
val baseSettings = Defaults.itSettings
def baseProject(name: String, location: String = "."): Project = (
Project(name, file(location)) configs(IntegrationTest)
)
}
我把这个以及其他一些设置作为插件,然后我的build.sbt就像
一样简单import caoilte.BasePlugin
BasePlugin.baseSettings
val helloWorld = BasePlugin.baseProject("helloWorld")
答案 1 :(得分:2)
在评估设置之前,sbt需要知道委派的配置。因此,无法在设置系统中定义配置。
请注意,如果使用的配置不是extend
其他配置,则不一定要使用configs
方法在项目中注册它。
答案 2 :(得分:1)
我假设您使用SBT 0.13,因为您的项目定义在.sbt文件中。
有一项名为autoSetting的新功能可用于影响多个sbt文件中的组合.sbt设置。
一个例子是:
lazy val `it-config-sbt-project` = project.in(file("."))
.autoSettings(userSettings, allPlugins, sbtFiles(file("../mysetting.sbt")), defaultSbtFiles)