在sbt文档中,他们提到了声明项目依赖关系的不同方法。
libraryDependencies += groupID % artifactID % revision
libraryDependencies += groupID % artifactID % revision % configuration
libraryDependencies ++= Seq(
groupID %% artifactID % revision,
groupID %% otherID % otherRevision
)
然而,当我用:
创建新的Play2框架时activator new HelloWorld play-scala
我可以在build.sbt
中看到以下代码:
libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
ws
)
他们是如何解决的(jdbc,anorm,cache,ws)?是否还有其他方式来声明依赖项?
答案 0 :(得分:3)
这些都是同一种方法的所有例子。 libraryDependencies
密钥带有一系列工件,每个工件都定义为
groupID % artifactID % revision % configuration
在大多数情况下,省略了通常用于限制依赖关系添加到configuration
范围的可选"test"
。
如果您想宣布个人依赖,那么
libraryDependencies += single
如果您有多个,则通常按顺序将它们添加为批处理:
libraryDependencies ++= Seq(first, second, third)
在上一个示例中,jdbc
,anorm
等已经如上所述定义,因此您只是指这些预先存在的值。你也可以自己做:
lazy val myDep = groupID % artifactID % revision
libraryDependencies += myDep
要连接groupID
和artifactID
,有一个特殊的运算符%%
而不是%
,它对Scala库很有用,因为它们通常是针对不同版本的Scala编译的,例如2.10和2.11。 %%
表示Scala版本附加到artifactID
,依赖于此常见约定。即。
"com.foo" %% "bar" % "1.0"
等于
"com.foo" % "bar_2.11" % "1.0"
如果您的项目的Scala版本是2.11,或
"com.foo" % "bar_2.10" % "1.0"
如果你的Scala版本是2.10等等。