2012-09-12 12 views
8

Znalazłem przykład uruchamiania skryptów Groovy na systemach, które nie mają zainstalowanego Groovy przy użyciu pliku jar groovy-all. Próbowałem następujące:Podczas korzystania ze skryptów Groovy przy użyciu słoika groovy-all, w jaki sposób określasz ścieżkę klas?

java -cp src:.:lib/* -jar lib/groovy-all-2.0.1.jar src/com/example/MyScript.groovy 

Kłopot jest mój skrypt zależy od słoików w katalogu lib plus dwa inne Groovy skryptów umieszczonych w src/com/przykładów. Kiedy to uruchomię, narzeka na wszystkie instrukcje importowania. Można go uruchomić na systemie, który został zainstalowany w porządku Groovy za pomocą następujących czynności:

CLASSPATH="src:.:lib/*" groovy src/com/example/MyScript.groovy 

Jak uruchamiać skrypty Groovy w ten sposób, przy użyciu Groovy-cały słoik, a także nadać mu ścieżki klasy?

Odpowiedz

18

Nie można łączyć obu -jar i -cp w poleceniu java, więc musisz jawnie nazwać główną klasę. Patrząc na manifest groovy-all JAR, głównym nazwa klasy jest groovy.ui.GroovyMain, więc trzeba

java -cp 'src:.:lib/*' groovy.ui.GroovyMain src/com/example/MyScript.groovy 

(jeśli porywające wszystko nie były już objęte lib/* trzeba by dodać, że także do -cp).

1

Jednym ze sposobów jest skompilowanie plików Groovy do plików "* .class". Następnie dołącz słoik z katalogu $ GROOVY_HOME/embeddable i umieść go w ścieżce klas.

Oto minimalistyczny przykład (pierwszy wiersz jest prosty Unix copy; stosowanie co działa dla ciebie):

$ cp /some-dir/groovy-1.8.5/embeddable/* . 
$ groovyc Test.groovy 
$ java -cp . groovy-all-1.8.5.jar Test 

Dla typowej dystrybucji, należy użyć Ant/Maven/Gradle zbudować własny słoik plik z skompilowanym Groovy (np. pliki klas) w nim.

Powiązane problemy