Groovy Shell в Grails включает в себя мою папку Grails .lib / - PullRequest
1 голос
/ 14 сентября 2011

У меня есть приложение grails, которое отвечает за запуск загруженных файлов groovy. Затем мое приложение ищет загруженные файлы groovy и затем выполняет их с помощью GroovyShell.

Кажется, что любые файлы .jar, включенные в мою папку lib grails, также добавляются в classpath моего GroovyShell (это не хорошо для меня) Есть ли способ получить «чистый» путь к классам, который не содержит внешних ссылок?

Пример:

MyGrailsApp/lib/my-java-code.jar

my-java-code.jar содержит класс с именем com.ClassInExternalLib

GroovyService{

    def runTask(){
        GroovyShell shell = new GroovyShell()
        shell.evaluate("assert new com.ClassInExternalLib() != null")

    }

}

1 Ответ

3 голосов
/ 14 сентября 2011

Просто установите ClassLoader на Classloader, который содержит только те библиотеки, которые вы хотите предоставить GroovyShell при создании GroovyShell. Для получения дополнительной информации см. Документацию Groovy API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...