2013-12-10 22 views
1

我剛開始學習scala,我使用的構建工具是sbt。在這裏,我必須爲每個示例項目編寫依賴關係。我從互聯網複製了一些依賴關係並進行了粘貼,但我沒有獲得如何通過我自己編寫依賴關係的語法(或模式)。 有人可以告訴我關鍵字的排列方式以及寫入依賴關係的模式是什麼。sbt構建文件依賴語法(或模式)

回答

6

下面是從約什Suereth book

定義依賴SBT報價提供了一個方便的語法定義的Maven /常春藤使用%方法依賴關係。要在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],讓你有第二個運營商++=其預計moduleIds的序列:

libraryDependencies ++= Seq("group" % "artifact" % "version", etc...) 

最常用的方法在maven cetnral等商店中存儲依賴關係。所以,如果你想添加你自己的依賴項,例如你想爲scala 2.11找到Akka 2.2.3,首先找到它(link),那麼你需要找到.pom文件或者某些情況下它會被寫入像here,所以你需要foloowing線:

<dependency> 
    <groupId>com.typesafe.akka</groupId> 
    <artifactId>akka-actor_2.10</artifactId> 
    <version>2.3-M1</version> 
</dependency> 

這是很容易轉化爲SBT的依賴,就像我上面描述:

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

注意!,我寫了"com.typesafe.akka" %% "akka-actor"兩個百分比符號,這意味着我需要一個具有相同版本的scala的庫,這是我的scalaVersion設置密鑰。如果您注意到maven樣式依賴項,artifact id包含scala版本:akka-actor_2.10,但不在out sbt依賴項中。如果您沒有有階版本在你的artifactId,那麼你shouldn't把它寫成%%離開只是一個%