При запуске скриптов Groovy с помощью Groovy-all jar, как вы указываете путь к классам?
Я нашел пример запуска скриптов Groovy в системах, в которых Groovy не установлен с помощью файла groovy-all jar. Я попытался сделать следующее:--3-->
java -cp src:.:lib/* -jar lib/groovy-all-2.0.1.jar src/com/example/MyScript.groovy
проблема в том, что мой скрипт зависит от jars в каталоге lib плюс два других файла сценария Groovy, расположенных в src/com / examples. Когда я запускаю это, он жалуется на операторы import для всех из них. Я могу запустить его в системе, в которой установлен Groovy, используя следующий:
CLASSPATH="src:.:lib/*" groovy src/com/example/MyScript.groovy
Как запустить скрипты Groovy таким образом, используя банку groovy-all, а также дать ей путь к классам?
2 ответов
вы не можете объединить оба -jar
и -cp
на java
command, поэтому вам нужно явно назвать основной класс. Глядя на манифест groovy-all
JAR, имя основного класса groovy.ui.GroovyMain
, так что вам нужно
java -cp 'src:.:lib/*' groovy.ui.GroovyMain src/com/example/MyScript.groovy
(если groovy-все еще не были покрыты lib/*
вам нужно будет добавить это в -cp
так же).
один из способов-скомпилировать файлы Groovy в "*.файл класса. Затем включите банку из каталога $GROOVY_HOME/embeddable и поместите ее в путь к классам.
вот минималистский пример (первая строка-простая копия Unix; используйте все, что работает для вас):
$ cp /some-dir/groovy-1.8.5/embeddable/* .
$ groovyc Test.groovy
$ java -cp . groovy-all-1.8.5.jar Test
для типичного распространения Вы бы использовали Ant/Maven / Gradle для создания собственного файла jar с скомпилированным Groovy (т. е. файлами классов) в нем.