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

时间:2011-11-24 14:52:31

标签: 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"

这是什么意思?

3 个答案:

答案 0 :(得分:17)

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

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

有关详细信息,请查看sbt wiki page托管依赖关系部分)

答案 1 :(得分: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"

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

如果您计划升级scala版本或计划针对多个scala版本发布lib,则应考虑使用它。

引擎盖下,第一个String隐式转换为GroupID %%方法,将下一个String转换为GroupArtifactId,以下%创建{{1}最后ModuleID将范围添加到%

答案 2 :(得分:2)

这确实是sbt(简单构建工具)。

'at'方法在字符串上定义并返回一个Resolver。 '%'方法在字符串上定义,并返回ModuleID。