2012-11-27 18 views
5

我加入以下的build.sbt为什么在成功执行scalacheck解决之后,sbt给出“对象scalacheck不是包org的成员”?

libraryDependencies <<= scalaVersion { scala_version => Seq(
<other entries> 
    "org.scalacheck" %% "scalacheck" % "1.10.0" % "test", 
    <other entries> 
) 
} 

compile在SBT项目,依赖被成功解析为可以在日志中可以看出:

[info] Resolving org.scalacheck#scalacheck_2.9.1;1.10.0 ... 
... 
Done updating 

不过,我得到以下编译一个文件时出错。

object scalacheck is not a member of package org 
import org.scalacheck.Gen 
    ^ 

这是什么原因?

有没有办法在compile任务中看到sbt正在使用的类路径?

Sbt version: 0.11.2 
OS: Windows 7 
Scala version: 2.9.1 

请注意,该项目在ScalaIDE中建立良好。 (我用sbteclipse产生日食.classpath文件生成.classpath有适当的scalacheck条目)。

回答

14

导入依赖使得Scalacheck仅适用于命令test方式:

"org.scalacheck" %% "scalacheck" % "1.10.0" % "test" 

你应该使用:

"org.scalacheck" %% "scalacheck" % "1.10.0" 

但是,为什么在测试中使用Scalacheck?请参阅this link了解更多有关sbt测试的解释。

+2

另外值得注意的是:使用'test:compile'来编译'src/main/test'中的东西。该版本将查找标有'...%“测试”' – Dylan

+0

“的依赖项,谢谢!它现在有效。我写的一些“发生器”和“缩小”方法并不重要。因此,我将这些代码和类实现保存在'src'中。 – dips