5

.sbtビルド定義ファイルを使用していますが、同じバージョン番号を共有する関連する依存関係がいくつか定義されています。例:

libraryDependencies ++= Seq(
    "com.typesafe.akka" % "akka-actor" % "2.0.3",
    "com.typesafe.akka" % "akka-slf4j" % "2.0.3",
    ...
    "com.typesafe.akka" % "akka-testkit" % "2.0.3" % "test",
    ...
)

Mavenでproperites要素を使用して行うのと同じように、バージョン番号を1か所で指定できるようにしたいと思います。つまり、pomで次のように指定できます。

<propeties>
    <io.akka.version>2.0.3</io.akka.version>
</properties>

後で依存関係を宣言するときに、そのプロパティを参照します。

<dependency>
    ...
    <version>${io.akka.version}</version>
</dependency>

SBTに同様のアプローチがあるかどうか誰かが知っていますか?

4

2 に答える 2

11

完全な構成(.scalaファイル)を使用している場合は、単純なscalaコードを記述してください。

val ioAkkaVersion = "2.0.3"

libraryDependencies ++= Seq(
    "com.typesafe.akka" % "akka-actor" % ioAkkaVersion,
    "com.typesafe.akka" % "akka-slf4j" % ioAkkaVersion,
    ...
    "com.typesafe.akka" % "akka-testkit" % ioAkkaVersion % "test",
    ...
)

.sbt構成の場合、これは似ていますが、それほどエレガントではありません。

libraryDependencies ++= {
  val ioAkkaVersion = "2.0.3"
  Seq(
    "com.typesafe.akka" % "akka-actor" % ioAkkaVersion,
    "com.typesafe.akka" % "akka-slf4j" % ioAkkaVersion,
    ...
    "com.typesafe.akka" % "akka-testkit" % ioAkkaVersion % "test",
    ...
  )
}
于 2012-09-17T13:45:17.413 に答える
5

おそらくこのようなものですか?

def akka(artifact: String) = "com.typesafe.akka" % ("akka-" + artifact) % "2.0.3"


libraryDependencies ++= Seq(akka("actor"), akka("slf4j"), akka("testkit") % "test" )
于 2012-09-17T15:05:44.597 に答える