我遇到了这段代码:
import sbt._
class AProject(info: ProjectInfo) extends DefaultProject(info) {
val scalaToolsSnapshots = ScalaToolsSnapshots
val scalatest = "org.scalatest" % "scalatest" %
"1.0.1-for-scala-2.8.0.RC1-SNAPSHOT"
}
Run Code Online (Sandbox Code Playgroud)
我对scalatest包含什么以及%它的作用感到困惑.
Dan*_*ral 12
它声明了一个依赖.特别是,
val scalatest = "org.scalatest" % "scalatest" % "1.0.1-for-scala-2.8.0.RC1-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
是指可以在以下找到的依赖关系
http://scala-tools.org/repo-snapshots/org/scalatest/scalatest/1.0.1-for-scala-2.8.0.RC1-SNAPSHOT/
前面的所有内容都org指的是存储库,它是(预)在别处定义的.
找到启用%on 的隐式并不容易String,但是,对于记录,找到它ManagedProject,将a转换String为a GroupID.在同一特征中,还有另一个隐含的at方法可以启用该方法.
无论如何,隐式将第一个String转为a GroupID,第一个%将String代表工件ID并返回a GroupArtifactID,第二个将String代表修订并返回a ModuleID,这是最终被分配给的scalatest.
小智 6
如果您使用Maven,这与Scala DSL基本相同.%用作分隔符:
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest</artifactId>
<version>1.0.1-for-scala-2.8.0.RC1-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
了解更多:http: //code.google.com/p/simple-build-tool/wiki/LibraryManagement