9

私は次のものを持っていますbuild.sbt

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

scalaVersion := "2.10.4"

Defaults.itSettings

lazy val `it-config-sbt-project` = project.in(file(".")).configs(IntegrationTest)

IntegrationTest 構成を追加する行をさらに簡単にするにはどうすればよいですか?

プロジェクトの現在の構成と設定を使用した設定が必要です

settings ++= Defaults.itSettings

configs += IntegrationTest

またはitSettings、sbt ファイルの次の行で設定を自動的に適用することもできます。

configs += IntegrationTest
4

3 に答える 3

5

私も同じように挫折しました。私が見つけた最善の解決策は、Josh Suereth の効果的な SBT スライドから借りて、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")
于 2013-12-14T17:45:11.783 に答える
2

sbt は、設定を評価する前に委任の構成を知る必要があります。そのため、設定システム内で構成を定義することはできません。

ただし、別の構成を使用しない構成を使用する場合は、メソッドextendを使用してプロジェクトに登録する必要はありません。configs

于 2013-10-31T12:39:24.567 に答える