我遇到了这段代码:
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"
}
我对scalatest
包含的内容以及%
的内容感到困惑。
答案 0 :(得分:12)
它声明了一个依赖。特别是,
val scalatest = "org.scalatest" % "scalatest" % "1.0.1-for-scala-2.8.0.RC1-SNAPSHOT
指的是可以在
找到的依赖关系http://scala-tools.org/repo-snapshots/org/scalatest/scalatest/1.0.1-for-scala-2.8.0.RC1-SNAPSHOT/
org
之前的所有内容都指的是存储库,它是(预先)在别处定义的。
在%
上找到启用String
的隐式内容并不容易,但是,对于记录,它可以在ManagedProject
上找到,将String
转换为GroupID
。在同一个特征中,还有另一个隐含的at
方法。
无论如何,隐式会将第一个String
转换为GroupID
,第一个%
会使String
代表工件ID并返回{{ 1}},第二个将使用代表修订的GroupArtifactID
并返回String
,这是最终分配给ModuleID
的内容。
答案 1 :(得分: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>
了解更多: http://code.google.com/p/simple-build-tool/wiki/LibraryManagement