2013-07-30 29 views
11

http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Library-Dependencies.htmlCú pháp cụ thể để phụ thuộc phạm vi thư viện trong SBT?

Nếu bạn muốn có một sự phụ thuộc xuất hiện trong classpath chỉ cho cấu hình thử nghiệm và không phải là cấu hình Compile, thêm% "test" như này:

libraryDependencies += "org.apache.derby" % "derby" % "10.4.1.3" % "test" 

Ai đó có thể giải thích lý do tại sao chúng tôi sử dụng ký hiệu này? Tôi có nghĩa là cấu hình ở cuối?

Sao chúng ta không viết một cái gì đó như thế:

libraryDependencies in Test += "org.apache.derby" % "derby" % "10.4.1.3" 

Trả lời

4

Cấu hình như là một chuỗi ở cuối là một Ivy configuration và được mô tả chính xác hơn là một ánh xạ cấu hình. in Test không bao gồm tất cả các trường hợp sử dụng, mặc dù nó bao gồm các trường hợp phổ biến.

Trang Detailed-Topics/Dependency-Management cho 0,13 cũng có thêm thông tin về nó. Cấu hình là một tính năng của Ivy. Chúng có thể được coi là một sự tổng quát hóa các phạm vi của Maven.

Lưu ý rằng bất cứ điều gì ngoài phạm vi Maven yêu cầu siêu dữ liệu dưới dạng tệp ivy.xml. Đây là trường hợp siêu dữ liệu được xuất bản tới kho lưu trữ cục bộ với xuất bản cục bộ, được xuất bản tới kho lưu trữ Ivy hoặc khi được sử dụng trong một bản dựng cục bộ trước khi xuất bản. Siêu dữ liệu dưới dạng tệp pom.xml, chẳng hạn như từ tệp Maven Central, bị giới hạn ở phạm vi Maven chuẩn.

+0

cảm ơn tôi nghĩ bây giờ tôi đã hiểu. Nó không thể làm với maven phải không? Vì maven sử dụng các tạo tác được xuất bản cục bộ và chỉ src/main/được xuất bản. 'test-> test' có thể hữu ích trong một số trường hợp cho tôi –

+0

được chỉnh sửa với các chi tiết liên quan đến Maven và phạm vi –

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