2012-11-30 19 views
6

Tôi đã đến khá tốt cùng với sbt, Công cụ xây dựng Scala. Nếu bạn chỉ có các vấn đề nhỏ trong mã, thật dễ dàng.Làm cách nào để biên dịch một số tệp bằng sbt?

Bây giờ, sau khi thêm một tính năng chính, phần lớn mã của tôi bị hỏng và tôi dường như bị nhầm lẫn về cách phụ thuộc. Tôi có thể giúp nó, biên dịch các mô-đun cơ bản đầu tiên, nhưng nó dường như không cho tôi.

Hệ thống trợ giúp là ... khét tiếng.

> help compile 
Compiles sources. 

Vâng, tốt. Tôi đoán rằng.

Điều tôi muốn nghe là: làm cách nào để biên dịch chỉ - giả sử - src/module/A.scala.

Điều này thậm chí không thể thực hiện được (xin chào lần nữa, make, không bao giờ bỏ rơi bạn!). Ít nhất tôi không thể tìm thấy bất kỳ tham chiếu nào trên Internet để áp dụng sbt compile chỉ với một tệp.

Tôi đang sử dụng sbt từ lời nhắc dòng lệnh chứ không phải IDE.

UPDATE:

Đó là lỗi của tôi. :/Đã chia một tệp nguồn thành nhiều tệp, nhưng quên sao chép mệnh đề package cho mỗi tệp mới. Oooops.

Sẽ duy trì trạng thái này trong một thời gian, vì việc biên dịch chỉ một tệp duy nhất (ví dụ: sbt compile filename) sẽ không phải là điều xấu.

+0

Ông có thể xin thêm đầu ra có liên quan của SBT? Chuyện gì vậy? Bạn đã thử thực thi 'clean' trước chưa? – drexin

+0

Có 5 trang đầu ra sbt và tôi không thoải mái khi đặt nó ở đây. Thông thường, sbt dường như bắt đầu với các phần phụ thuộc ít nhất, nhưng bây giờ các lỗi được tham chiếu chéo lẫn nhau, vì vậy thật khó để nói, nơi bắt đầu gỡ rối toàn bộ. Lỗi của tôi, có khả năng, nhưng công cụ này không thể hiểu được ngay bây giờ. ví dụ: StationBase: không tìm thấy StateBase; StateBase: không tìm StationBase (vì hiện tại không biên dịch). – akauppi

+0

Bạn có thể dán đầu ra vào http://pastie.org/ và liên kết đến nó tại đây. – drexin

Trả lời

4

Bạn có thể xác định Multi-Project Build nơi tệp bạn muốn biên dịch riêng được đóng gói trong dự án. Theo tài liệu, bạn có thể làm như sau:

Tại dấu nhắc tương tác sbt, hãy nhập dự án vào danh sách dự án của bạn và dự án để chọn dự án hiện tại. Khi bạn chạy một nhiệm vụ như biên dịch, nó chạy trên dự án hiện tại. Vì vậy, bạn không nhất thiết phải biên dịch dự án gốc, bạn có thể biên dịch chỉ một tiểu dự án.

+1

Đã +1 cho câu trả lời trung thực. Pheeww .. Và SBT được cho là để .. Đơn giản? : D – akauppi

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