2015-02-03 22 views
5

Czy jest jakaś wbudowana funkcja lub wtyczka, która umożliwia uzyskanie konsoli lein, więc na przykład można przetestować, nie czekając za każdym razem, aby JVM się uruchomiła.Konsola Lein (jak sbt)

$ lein console 
>>> test 
... 
>>> test 
... 
>>> jar 

Uwaga: Chciałbym wywołać próba skończy się, a nie na przykład przez oglądanie plików źródłowych. Właśnie dlatego chciałbym mieć konsolę lein.

Wyjaśnienie: Nie szukam lein repl. Chciałbym mieć konsolę, w której mógłbym uruchamiać polecenia poleceń.

+0

Poszukujesz 'lein repl'? – cfrick

+0

@ffrick nie, rozpoczyna się replikacja lein * clojure repl *. Chciałbym konsoli, w której mógłbym uruchamiać polecenia poleceń. – phadej

+1

lein jest programem typu clojure, a jego zadania mogą być uruchamiane w repl, jeśli załadujesz biblioteki libin – noisesmith

Odpowiedz

1

Możesz chcieć rzucić okiem na grenchman. Chociaż nie jest to konsola Leiningen, to przynajmniej umożliwia ponowne wykorzystanie istniejącej sesji REPL. Z czego wnoszę, używanie jest w następujący sposób:

  1. Przenieś gdzieś, że nie jest w środku projektu zadzwonić:

    $ lein repl :headless 
    
  2. W swoim katalogu projektu, przeznaczenie:

    $ grench lein <task> <options> 
    

Zadania będą wykonywane w już rozprzężonej maszynie JVM Leiningen, a narzut uruchomienia powinien zniknąć.

grenchman Budynek wydaje się być nudny, choć i to zaleca się stosowanie jednego z precompiled binaries (BUT są one obecnie not available).

I wreszcie, że strona stwierdza również:

Grenchman jest wciąż bardzo nowy i może nie być w pełni wiarygodne.

Więc, powodzenia, tak myślę?

+0

Niestety wygląda na to, że pobieranie plików binarnych Grenchmana zniknęło :(Otrzymuję odmowę dostępu dla wszystkich z nich – Ilkka

+0

O nie, wydaje się, że jest [znany problem] (https://github.com/technomancy/grenchman/issues/30) ... – xsc

0

Jedną opcją jest uruchomienie repliki z własnego pliku JAR leiningen.

$ java -cp ~/.lein/self-installs/leiningen-2.5.0-standalone.jar clojure.main 
Clojure 1.6.0 
user=> (require '[leiningen.core.project :as project] '[leiningen.test :as test]) 
nil 
user=> (def prj (project/read)) 
#'user/prj 
user=> (test/test prj) 

lein test org.noisesmith.orsos.load-test 

Ran 3 tests containing 3 assertions. 
0 failures, 0 errors. 
nil 
user=> (require '[leiningen.jar :as jar]) 
nil 
user=> (jar/jar prj 'org.noisesmith.orsos) 
Compiling org.noisesmith.orsos 
Created /media/justin/806084F16084EEEA/clojure/orsos/target/orsos-0.1.0-SNAPSHOT.jar 
{[:extension "jar"] "/media/justin/806084F16084EEEA/clojure/orsos/target/orsos-0.1.0-SNAPSHOT.jar"} 
user=> 

Jako poziom podstawowy może wykonywać zadania lein bez konieczności ponownego uruchamiania za każdym razem. Jeśli używasz także rlwrap lub używasz nrepl, staje się on bardziej użyteczny. O ile wiem, nie ma przyjaznych dla użytkownika narzędzi dookoła tego (choć łatwo może być).

Jeśli chcesz używać zadań z wtyczek lein, można je dodać do argumentu -cp.

1

Starsze wersje Leiningen wykorzystane do włączenia lein interactive, który zachowywał się podobnie do funkcji prosicie: otwarto powłokę, do którego można wpisać test i mieć go uruchomić lein test z już uruchomionym Lein JVM, i tak dalej . Ta funkcja została usunięta podczas przejścia na wersję 2.0, jak sądzę, i chociaż nie wiem, dlaczego podejrzewam, że był dobry powód. Może spytaj w #leiningen na freenode?