2012-11-01 9 views
7

Có cách nào để chạy một ứng dụng Scala hoặc thử nghiệm đơn vị trong Scala IDE 2.0.2 (Eclipse 3.7) nếu có lỗi biên dịch (không liên quan!) Trong dự án không?Chạy ứng dụng Scala trong Scala IDE có lỗi biên dịch

Trong Java, đây là không có vấn đề, nhưng Scala IDE giữ nói với tôi:

Project chứa lỗi biên dịch (do đó, không có mã nhị phân đã được sản xuất).

Tất cả những gì tôi muốn làm là chạy thử nghiệm nhỏ trong quy trình tái cấu trúc chính, nhưng tôi không thể khắc phục tất cả lỗi biên dịch ngay bây giờ. Và tôi không muốn bắt đầu bình luận mọi thứ, vì những lỗi biên dịch này là những lời nhắc nhở tốt về các nhiệm vụ vẫn cần được thực hiện.

Trả lời

4

Hiện nay Scala IDE không hỗ trợ hành vi này, nhưng nó sẽ được tốt đẹp nếu nó có thể.

Để nhận thức được điều này, tôi đã tạo ra một ticket:

JDT cho phép để thực thi mã Java mặc dù các vấn đề biên soạn trong nguồn. Nội bộ JDT thay thế mã bị lỗi bằng một ngoại lệ, được ném ra nếu mã có liên quan được thực hiện. Nhưng nếu mã lỗi không bao giờ được gọi trong quá trình thực hiện, không có gì xấu xảy ra. Sẽ rất tuyệt nếu SDT hỗ trợ hành vi tương tự.

+0

Thú vị, tôi không biết rằng JDT phải làm một cái gì đó như thế này để hỗ trợ tính năng đó. Tôi nghĩ rằng nó bằng cách nào đó thực hiện chương trình hoàn toàn loại trừ các lớp sai lầm từ classpath. Nhưng điều này có ý nghĩa hơn. Cảm ơn vì vé và giải thích. – rolve

1

Nếu bạn đang sử dụng Scala 2.10, một tùy chọn tốt là sử dụng ký hiệu mới được giới thiệu ???. Bằng cách này, mã của bạn sẽ biên dịch ngay cả khi chức năng chưa được triển khai.

Chắc chắn có một cách tốt hơn nhưng điều này sẽ vẫn tốt hơn mã bình luận.

Theo đề nghị của Jesper, bạn vẫn có thể thực hiện ??? nếu bạn đang làm việc với các phiên bản trước của Scala:

def ??? : Nothing = throw new Error("Not implemented") 
+0

Cảm ơn, nhưng tôi buộc phải sử dụng Scala 2.9.2. – rolve

+2

@rolve Lưu ý rằng '???' không phải là từ khóa mới hoặc thay đổi ngôn ngữ. Bạn có thể dễ dàng tự mình lập trình: 'def ???: Nothing = throw new Error (" Không được triển khai ")' (Đây là những gì được thực hiện trong khóa học Coursera Scala). – Jesper

+0

Cảm ơn bạn đã làm rõ! –