Добавление метода из внешнего скрипта groovy с помощью GroovyShell()

У меня есть отличный скрипт (source.groovy), которому нужно вызвать метод из другого отличного скрипта (external.groovy). Проблема в том, что external.groovy импортирует несуществующую библиотеку, поэтому я получаю сообщение об ошибке. Вот пример:

Источник.groovy:

 new GroovyShell().parse( new File( 'external.groovy' ) ).with {
    method()
  }

Вот внешний .groovy:

import com.foo.doesnotexsist
def method() {println "test"}

Когда я запускаю Source.groovy, я получаю сообщение об ошибке, потому что com.foo.doesnotexsist не существует. Меня не волнует, что он не существует, потому что он не влияет на функцию method(). Есть ли способ вызвать функцию method()?


person user2475310    schedule 05.06.2014    source источник
comment
Какая версия Groovy?   -  person dmahapatro    schedule 05.06.2014
comment
Вы могли бы удалить эту строку из файла?   -  person Will    schedule 05.06.2014


Ответы (1)


Возможно, это не тот способ, которым мы хотим этого добиться, но есть простое решение для удаления нежелательного импорта:

def text = new File( 'external.groovy' ).findAll{!(it =~ /^\s*import/)}.join('\n')
new GroovyShell().parse( text ).with{method()}
person hexin    schedule 07.06.2014