什么是scala百分比运算符(%)和字符串方法?

Met*_*ome 18 scala sbt

val scalaToolsSnapshots = "Scala-Tools Maven2 Snapshots Repository" at "http://scala-tools.org/repo-snapshots"
val specs = "org.scala-tools.testing" % "specs_2.9.0-1" % "1.6.8" % "test"
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

om-*_*nom 18

这是定义项目的托管依赖项的sbt(简单构建工具)DSL.

格式与maven非常相似:第一行说明在哪里找到存储库,第二行定义了依赖性"groupId" % "artifactId" % "version" % "scope"

有关详细信息,请查看sbt wiki页面(托管依赖项部分)


Dav*_*vid 17

您还可以使用以下内容简化此声明:

scalaVersion := "2.9.0-1"

scalaToolsSnapshots := "Scala-Tools Maven2 Snapshots Repository" at "http://scala-tools.org/repo-snapshots"

specs := "org.scala-tools.testing" %% "specs" % "1.6.8" % "test"
Run Code Online (Sandbox Code Playgroud)

%% 将指定sbt使用与您的项目scala版本二进制兼容的specs版本.

您应该考虑使用它,特别是如果您计划升级scala版本或者计划针对多个scala版本发布lib.

在引擎盖下,第一个String被隐式转换为一个GroupIDwith %%方法,将下一个String转换为a GroupArtifactId,下面%创建一个ModuleID,最后一个%将一个范围添加到 ModuleID.