2012-11-27 21 views
5

Tôi đã thêm những điều sau đây trong build.sbt:Tại sao sbt cho "scalacheck đối tượng không phải là thành viên của gói org" sau khi giải quyết thành công scalacheck?

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

Khi compile dự án trong SBT, sự phụ thuộc được giải quyết thành công như có thể thấy trong các bản ghi:

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

Tuy nhiên, tôi nhận được như sau lỗi trong khi biên soạn một tệp.

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

Điều gì có thể là lý do cho việc này?

Có cách nào để xem đường dẫn lớp mà sbt đang sử dụng trong tác vụ compile không?

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

Lưu ý rằng dự án xây dựng tốt trong ScalaIDE. (. Tôi sử dụng sbteclipse để tạo ra các tập tin nhật thực .classpath Các tạo .classpath có entry scalacheck thích hợp.)

Trả lời

14

Cách bạn nhập phụ thuộc làm Scalacheck chỉ có sẵn cho các lệnh test:

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

Bạn nên sử dụng:

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

Nhưng tại sao bạn sử dụng Scalacheck ở đâu đó ngoài kiểm tra? Xem this link để biết thêm giải thích về thử nghiệm trong sbt.

+2

Cũng lưu ý: sử dụng 'test: compile' để biên dịch nội dung trong' src/main/test'. Phiên bản này sẽ tìm các phụ thuộc được đánh dấu bằng '...%" test "' – Dylan

+0

Cảm ơn! Nó hoạt dộng bây giờ. Một số phương thức 'generator' và' shrink' mà tôi viết là không tầm thường. Do đó, tôi giữ mã này cùng với việc thực hiện lớp trong 'src'. – dips

Các vấn đề liên quan