2013-10-21 24 views
9

我有以下build.sbt什麼是sbt 0.13.x中IntegrationTest配置的最小設置?

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 

,甚至有在SBT文件以下行自動應用itSettings設置:

configs += IntegrationTest 
+0

那麼簡單,我不認爲更好的辦法是目前可用,但我希望知道我錯了。 –

+1

還有一個更好的方法,但不多 - 使用file(「。」)configs(IntegrationTest)中的''項目。 –

+0

@JacekLaskowski你的短版本不適合我:'發現:sbt.Project必需:sbt.Def.SettingsDefinition' – Caoilte

回答

2

SBT需要評估設置前需要了解委託的配置。因此,配置無法在設置系統內定義。

請注意,如果使用的配置不是extend另一種配置,則不一定非要在具有configs方法的項目上註冊它。

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") 
相關問題