2012-10-23 20 views
6

Tôi đang sử dụng Sbt để tích hợp liên tục (Tre). Tôi muốn kiểm tra tất cả các biến môi trường được thiết lập hoặc nhận được một thông báo lỗi mô tả. Tôi sử dụng phương pháp sau đây:Sbt để tích hợp liên tục: in stacktrace và thoát khỏi lỗi

def env(n: String) = Option(System.getenv(n)).getOrElse(throw new RuntimeException("Undefined required environment variable " + n)) 

val mySetting = env("REQUIRED_ENV_VAR") + "..." 

Thay vào đó, tôi nhận được

[error] java.lang.ExceptionInInitializerError 
[error] Use 'last' for the full log. 
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q 

Hai câu hỏi:

  1. Làm thế nào để có được đầy đủ stacktrace mà không cần phải sử dụng 'cuối cùng' (đơn giản không thể làm nó trên tre)?
  2. Làm cách nào để yêu cầu sbt thoát nếu tải dự án không thành công thay vì yêu cầu thử lại v.v ...?
+1

[* làm thế nào để có được đầy đủ stacktrace *] (https://groups.google.com/forum/#!msg/simple-build-tool/Oubyb6LlZA8/6ihYrzRyTKMJ) –

+0

Cảm ơn, nhưng nó doesn' t làm việc trong trường hợp xảy ra lỗi trong quá trình khởi tạo đối tượng Xây dựng. Tôi nhận được lỗi tương tự như trong bài đăng gốc. – nau

+1

[cách tắt lời nhắc tương tác] (http://code.google.com/p/simple-build-tool/issues/detail?id=80) – 4e6

Trả lời

7

SBT sẽ không kích hoạt chế độ tương tác nếu dòng đầu vào sẽ được "đóng" với (một hacky như vậy) lừa:

cat /dev/null | sbt taskname 

hoặc nếu bạn không thể sử dụng ống tạo ra một kịch bản shell như thế này :

#!/bin/sh 
sbt "[email protected]" < /dev/null 
Các vấn đề liên quan