为什么在成功完成scalacheck后,sbt会给"对象scalacheck不是包org的成员"?

dip*_*ips 7 scala sbt scalacheck

我添加了以下内容build.sbt:

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

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

[info] Resolving org.scalacheck#scalacheck_2.9.1;1.10.0 ...
...
Done updating
Run Code Online (Sandbox Code Playgroud)

但是,在编译一个文件时出现以下错误.

object scalacheck is not a member of package org
import org.scalacheck.Gen
      ^  
Run Code Online (Sandbox Code Playgroud)

这可能是什么原因?

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

Sbt version: 0.11.2
OS: Windows 7
Scala version: 2.9.1
Run Code Online (Sandbox Code Playgroud)

请注意,该项目在ScalaIDE中构建良好.(我使用sbteclipse生成eclipse .classpath文件.生成的.classpath具有正确的scalacheck条目.)

Lom*_*ard 15

导入依赖项的方式使Scalacheck仅对命令可用test:

"org.scalacheck" %% "scalacheck" % "1.10.0" % "test"
Run Code Online (Sandbox Code Playgroud)

你应该使用:

"org.scalacheck" %% "scalacheck" % "1.10.0"
Run Code Online (Sandbox Code Playgroud)

但是为什么你在其他地方使用Scalacheck而不是在测试?有关在sbt中进行测试的更多说明,请参阅此链接.

  • 还要注意:使用`test:compile`来编译`src/main/test`中的东西.此版本将找到标有"...%"test"`的依赖项 (2认同)