Я не уверен, что / как именно вы хотите сделать, но я полагаю, что вы можете достичь своей цели, используя один из классов, доступных в Groovy Dynamic Script: groovy.lang.Binding
или GroovyClassLoader
или GroovyScriptEngine
, здесь пример использования GroovyShell
class:
abstract class MyScript extends Script {
String name
String greet() {
"Hello, $name!"
}
}
import org.codehaus.groovy.control.CompilerConfiguration
def config = new CompilerConfiguration()
config.scriptBaseClass = 'MyScript'
def shell = new GroovyShell(this.class.classLoader, new Binding(), config)
def script = shell.parse('greet()')
assert script instanceof MyScript
script.setName('covfefe')
assert script.run() == 'Hello, covfefe!'
Это один из способов привязать переменную к внешнему файлу скрипта, другие примеры из документа:
http://docs.groovy -lang.org / последний / HTML / документация / гид-integrating.html
P.S. Загрузка внешнего файла может быть сделана с помощью GroovyClassLoader
:
def gcl = new GroovyClassLoader()
def clazz2 = gcl.parseClass(new File(file.absolutePath))
Надеюсь, это поможет.