为啥 sbt 在成功解析 scalacheck 后会给出“object scalacheck is not a member of package org”?
Posted
技术标签:
【中文标题】为啥 sbt 在成功解析 scalacheck 后会给出“object scalacheck is not a member of package org”?【英文标题】: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 条目。)
【问题讨论】:
【参考方案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"
的依赖项
谢谢!现在可以了。我正在编写的一些generators
和shrink
方法非常重要。因此,我将此代码与 src
中的类实现一起保留。以上是关于为啥 sbt 在成功解析 scalacheck 后会给出“object scalacheck is not a member of package org”?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 Play 2.3 项目中 sbt 编译后 sbt 失败并显示 NoClassDefFoundError: play/Play$ in Play 2.2.x 项目?
为啥 SBT 的 Scala (2.10) 不包含 Akka?