sbt构建文件依赖语法(或模式)

时间:2013-12-10 06:52:17

标签: scala build sbt

我刚开始学习scala,我使用的构建工具是sbt。在这里,我必须为每个示例项目编写依赖项。我从互联网上复制了一些依赖项并粘贴了,但是我没有得到自己编写依赖项的语法(或模式)。 有人可以告诉我如何安排关键字以及编写依赖关系的模式是什么。

1 个答案:

答案 0 :(得分:6)

以下是Josh Suereth book

的引用
  

定义依赖关系sbt提供了一种使用%方法定义Maven / Ivy依赖关系的便捷语法。要在sbt中定义ModuleID,只需编写“groupId”%“artifactId”%“version”,它将自动成为ModuleID的实例。

考虑这种依赖:

libraryDependencies += "iv.alex" % "commons" % "100500"

在这一行中,我们有三个部分:

libraryDependencies              - setting key
+=                               - operator
"iv.alex" % "commons" % "100500" - initialization part

此初始化部分构造ModuleIDlibraryDependencies设置密钥需要该"iv.alex" - groupId "commons" - artifactId "100500" - version 。它由引用中的其他三个部分组成:

libraryDependencies

但是Seq[ModuleID]键实际上是++=,所以你有第二个运算符libraryDependencies ++= Seq("group" % "artifact" % "version", etc...) 需要一系列moduleIds:

Akka

最常见的方法是在maven cetnral等商店中存储依赖关系。因此,如果你想添加自己的依赖项,例如你想为scala 2.11找到.pom 2.2.3,首先找到它(link),然后你需要找到<dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-actor_2.10</artifactId> <version>2.3-M1</version> </dependency> 文件或者某些情况下它会像here那样写,所以你需要以下几行:

libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.3-M1"

很容易转化为sbt依赖,就像我上面所描述的那样:

"com.typesafe.akka" %% "akka-actor"

注意!我已经写了scalaVersion两个百分比符号,这意味着我需要一个具有相同版本scala的库,我在akka-actor_2.10设置中键。如果您注意到maven样式依赖项,则artifact ID包含scala版本:shouldn't,但不包含sbt依赖项。如果在您的artifactId中包含scala版本,那么您%%将其写为%,只留下一个 {{1}} < / p>