14

我遇到了这段代码:

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包含什么,做什么%

4

2 回答 2

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指的是存储库,该存储库是在其他地方(预)定义的。

要找到启用%on的隐式并不容易String,但为了记录,它是在 on 上找到的ManagedProject,将 a 转换String为 a GroupID。在相同的特征中,还有另一个隐含的方法可以启用该at方法。

无论如何,隐式会将第一个String变成 a GroupID,第一个%将采用 aString表示工件 ID 并返回 a GroupArtifactID,第二个将采用 aString表示修订版并返回 a ModuleID,这是最终分配给 的scalatest

于 2011-03-11T00:18:52.477 回答
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

于 2011-03-10T23:40:15.647 回答