>我正在使用 .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 元素所做的那样,即您可以在 pom 中指定以下内容:
<propeties>
<io.akka.version>2.0.3</io.akka.version>
</properties>
然后稍后在声明依赖项时引用该属性:
<dependency>
...
<version>${io.akka.version}</version>
</dependency>
有谁知道SBT中是否有类似的方法?
如果您使用的是完整配置(.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",
...
)
}
也许是这样的?
def akka(artifact: String) = "com.typesafe.akka" % ("akka-" + artifact) % "2.0.3"
libraryDependencies ++= Seq(akka("actor"), akka("slf4j"), akka("testkit") % "test" )