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

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

问题描述:

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" 

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

+0

[str%str在SBT中意味着什么?]可能的重复(http://*.com/questions/5267127/what-does-str-str-mean-in-the-sbt) –

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

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版本的库。

引擎盖下,第一字符串被隐式转换为GroupID%%与方法,其下一个字符串转换为GroupArtifactId,以下%创建ModuleID和最后%增加了一个范围到ModuleID

sbt(简单构建工具)定义项目管理依赖关系的DSL。

格式相当simular到maven:第一行说在哪里可以找到库,第二行定义像"groupId" % "artifactId" % "version" % "scope"

详情依赖看看sbt wiki page(部分管理依赖

+0

感谢链接到sbt wiki页面。我在入门指南中没有看到这一点 – MetaChrome

+0

帮助我理解这里发生了什么的关键词是DSL。我在Scala本身寻找'%'字符串运算符,直到我在这里偶然发现。上面链接的sbt维基描述了'%'的作用[在这里](http://www.scala-sbt.org/0.13/docs/Library-Dependencies.html#The++key)。具体来说,*“'''方法从字符串中创建'ModuleID'对象,然后将这些'ModuleID'添加到'libraryDependencies'。”* – kdbanman

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

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