Как выполнить groovy скрипт из bat файла?

У меня в отдельном файле проекта есть groovy скрипт, выполняющий определённые действия. Я хочу запускать этот скрипт с помощью bat файла. С помощью какой команды и как это сделать?

Как советовали, пробовал groovy script.groovy, но непонятно почему выдаётся следующая ошибка:

C:\Users\User>cd IdeaProjects\Task\src\main\java

C:\Users\User\IdeaProjects\Task\src\main\java>groovy task.groovy
Caught: java.lang.ClassNotFoundException: org.postgresql.Driver
java.lang.ClassNotFoundException: org.postgresql.Driver
        at task.run(task.groovy:9)

Да, в моём скрипте есть подключение к бд с помощью org.postgresql.Driver:

sql = Sql.newInstance("jdbc:postgresql://" + addrDB + nameDB, userDB, passDB, "org.postgresql.Driver")

Но почему скрипт запускается и нормально работает из IDE (с точно такой же строчкой), но не запускается из командной строки?


Ответы (2 шт):

Автор решения: Danny

Если groovy есть в PATH, просто

groovy script.groovy

кладете эту строку в новый текстовый файл, сохраняете его с расширением .bat и запускаете в той же папке, где скрипт лежит. Иначе

"путь к groovy\groovy.exe" "путь к скрипту\script.groovy"

Если у вас используются русские имена в пути, не забудьте в начале bat-файла написать

chcp 1251

смена кодировки.

→ Ссылка
Автор решения: Alex

Для нормальной работы батника, чтобы подключиться к бд с помощью org.postgresql.Driver мне помогли следующие строчки:

@GrabConfig(systemClassLoader=true)
@Grab(group='org.postgresql', module='postgresql', version='9.4-1205-jdbc42')
sql = Sql.newInstance("jdbc:postgresql://" + addrDB + nameDB, userDB, passDB, "org.postgresql.Driver")

После этого скрипт начинает корректно работать, если вызывать его из bat файла, однако перестаёт корректно работать из IDE, выдавая следующее:

Groovyc: While compiling Task: Cannot @Grab without Ivy, please add it to your module dependencies (NoClassDefFoundError: org/apache/ivy/core/report/ResolveReport)

Решить это мне помог @Danny, указав как добавить ivy в pom.xml:

<dependency>  <!-- support @Grab in Groovy scripts -->
    <groupId>org.apache.ivy</groupId>
    <artifactId>ivy</artifactId>  
    <version>2.5.0</version>
</dependency> 

После этого всё хорошо запускается и из батника, и из IDE!

→ Ссылка