2013-08-06 9 views
7

Mam projekt sbt z 4 modułami: module-a, module-b, module-c, module-d.Jak wykonać pakiet dla jednego submodułu tylko na Jenkins?

Każdy moduł można spakować jako WAR. Chcę skonfigurować wdrożenie na Jenkins, które będzie budować tylko jeden z czterech modułów i wdrożyć go do kontenera.

W szczegółach, chcę mieć 4 Jenkins pracy - job-a, job-b, job-c, job-d każdy budynek tylko określony moduł (A do D).

Na razie używam clean update test package jako polecenia dla kompilacji Jenkins sbt, ale powoduje to pakowanie wszystkich 4 modułów, które nie są konieczne.

Próbowałem już project -module-a clean update test package, ale bez powodzenia.

+0

Czy możesz opisać, co w szczególności nie zadziałało podczas zmiany projektu? –

+0

Działa, ale nadal pakuje wszystkie moduły zamiast tylko jednego. "./sbt project -module - pakiet testowy czystej aktualizacji" - To jest polecenie wypróbowane w jenkins – Alebon

+2

Zacytuj argument "projektu" i nie używaj myślnika: './sbt" project module-a " test aktualizacji czystej ". –

Odpowiedz

9

mogą Ci się także do realizacji zadań projektowych o zakresie clean i test następująco:

sbt module-a/clean module-a/test 

Rozwiązanie jest nieco krótszy i jaśniejszy, do jakiego projektu odnoszą się poniższe polecenia.

Nie trzeba wykonać update zadanie ponieważ jest domyślnie wykonywane przez test jak opisano w inspect tree test.

Istnieje sposób, aby uczynić go czystszym z alisem. Użyj następujących w build.sbt:

addCommandAlias("jenkinsJob4ModuleA", "; module-a/clean; module-a/test") 

Z aliasu, wykonać jenkinsJob4ModuleA mieć taki sam efekt jak wyżej rozwiązania.

4

Zacytuj argument projektu, tj. project module-a i nie używaj myślnika przed nazwą modułu.

Cały wiersz poleceń do pracy Jenkins będzie niż się następująco:

./sbt "project module-a" clean update test 
+0

Chciałbym, żeby tutaj była konsystencja między trybem powłoki a trybem wsadowym. – Caoilte

Powiązane problemy