2012-10-23 6 views
6

Używam Sbt do ciągłej integracji (Bamboo). Chcę sprawdzić wszystkie zmienne środowiskowe są ustawione lub uzyskać opisowy komunikat o błędzie. Używam następujące podejście:Sbt dla ciągłej integracji: wydrukuj stos i wyjdź w przypadku błędu

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

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

Zamiast dostać

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

dwa pytania:

  1. Jak uzyskać pełną stacktrace bez potrzeby użycia 'ostatniego' (prosta nie może zrób to na Bamboo)?
  2. Jak powiedzieć sbt, aby wyjść, jeśli załadowanie projektu nie powiodło się, zamiast pytać o ponowienie itp.?
+1

[* jak uzyskać pełną stackTrace *] (https://groups.google.com/forum/#!msg/simple-build-tool/Oubyb6LlZA8/6ihYrzRyTKMJ) –

+0

Dzięki, ale nie robi” t działa w przypadku wystąpienia błędu podczas inicjowania obiektu Build. Otrzymuję ten sam błąd, co w oryginalnym wpisie. – nau

+1

[jak wyłączyć interaktywny monit] (http://code.google.com/p/simple-build-tool/issues/detail?id=80) – 4e6

Odpowiedz

7

SBT nie pozwoli tryb interaktywny, jeśli strumień wejściowy będzie „zamknięty” z (taki hacky) trick:

cat /dev/null | sbt taskname 

lub jeśli nie są w stanie używać rur utworzyć skrypt takiego :

#!/bin/sh 
sbt "[email protected]" < /dev/null 
Powiązane problemy