我刚开始学习scala,我使用的构建工具是sbt。在这里,我必须为每个示例项目编写依赖项。我从互联网上复制了一些依赖项并粘贴了,但是我没有得到自己编写依赖项的语法(或模式)。 有人可以告诉我如何安排关键字以及编写依赖关系的模式是什么。
答案 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
此初始化部分构造ModuleID
,libraryDependencies
设置密钥需要该"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>