Grails: предоставить библиотеку для внешнего скриптового скрипта - PullRequest
1 голос
/ 19 марта 2012

что у меня есть: внешний GroovyScript с использованием библиотеки apache-commons-io

и работающее приложение grails

В существующем приложении grails есть разные внешние скрипты (на данный моменттолько perl-скрипты), которые выполняются асинхронно с граалями (используя метод execute).

Теперь я получил GroovyScript, который я хочу запускать так же, как и PerlScripts.

На данный момент скрипт имеет библиотеку commons-io в папке lib.Это работает нормально.

Итак, мой вопрос: как я могу предоставить groovy-скрипт с библиотекой commons-io из grails плавным и аккуратным способом?Нужно ли указывать путь внутри команды, которая выполняется с помощью метода execute

, например:

groovy -cp=path/to/grailshome/lib.jar scripfile.groovy

, это не будет работать, если я разверну приложение grails на tomcat втекущая производственная среда, так как библиотеки из grails находятся на другом пути.

Помещение сценария в папку grails src / groovy, вероятно, будет работать, но я не так этого хочу.Сценарий должен быть автономным.

Я действительно застрял, так как не очень разбираюсь в технических деталях и отличных чертах.

Даже предложения и идеи, как это можно сделать,достаточно.

Надеюсь, вы понимаете вопрос, заранее спасибо

1 Ответ

1 голос
/ 19 марта 2012

Это ситуация, когда использование Виноград и добавление:

@Grab( 'commons-io:commons-io:2.1' )

в верхней части вашего groovy скрипта поможет?

Если вы запускаете это каквойна, тогда это может сработать:

String path = grailsApplication.parentContext
                               .getResource( 'WEB-INF/lib/commons-io-1.4.jar' )
                               .file
                               .absolutePath
...