【问题标题】:Why does sbt give "object scalacheck is not a member of package org" after successful scalacheck resolve?为什么 sbt 在成功解析 scalacheck 后会给出“object scalacheck is not a member of package org”?
【发布时间】:2012-11-15 00:01:22
【问题描述】:

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

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
      ^  

这可能是什么原因?

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

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

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

【问题讨论】:

    标签: scala sbt scalacheck


    【解决方案1】:

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

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

    你应该使用:

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

    但是你为什么在测试以外的地方使用 Scalacheck 呢?有关在 sbt 中进行测试的更多说明,请参阅 this link

    【讨论】:

    • 另外注意:使用test:compile 编译src/main/test 中的内容。这个版本会找到标记为... % "test"的依赖项
    • 谢谢!现在可以了。我正在编写的一些generatorsshrink 方法非常重要。因此,我将此代码与 src 中的类实现一起保留。
    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 2018-03-15
    • 1970-01-01
    • 2014-10-22
    • 2015-01-27
    • 2019-08-19
    • 1970-01-01
    • 2021-04-22
    相关资源
    最近更新 更多