scala 百分比运算符 (%) 和字符串的 at 方法有什么作用?

问题描述 投票:0回答:3
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 sbt
3个回答
18
投票

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

格式与

maven 非常相似:第一行表示在哪里找到存储库,第二行定义依赖关系,如 "groupId" % "artifactId" % "version" % "scope"


有关详细信息,请参阅

sbt wiki 页面(第托管依赖项部分)


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

在底层,第一个 String 使用

GroupID

 方法隐式转换为 
%%
,将下一个 String 转换为 
GroupArtifactId
,接下来的 
%
 创建一个 
ModuleID
,最后一个 
%
 添加范围
ModuleID


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

“at”方法在字符串上定义并返回解析器。 '%' 方法在字符串上定义,并返回 ModuleID。

© www.soinside.com 2019 - 2024. All rights reserved.