Spóźniam się na to, ale. W ten sposób osiągnęliśmy to, o co prosiłeś. Tak, mam file1.gsh tak:
pliku Plik1:
println("this is a test script")
def Sometask(param1, param2, param3)
{
retry(3){
try{
///some code that uses the param
}
catch (error){
println("Exception throw, will retry...")
sleep 30
errorHandler.call(error)
}
}
}
return this;
A w innym pliku, funkcje te mogą być dostępne przez pierwszą instancję. Tak więc w file2.
File2:
def somename
somename = load 'path/to/file1.groovy'
//the you can call the function in file1 as
somename.Sometask(param1, param2, param3)
Użyłem metaClass.mixin działa idealnie. Dziękuję – ptomasroos
Kolejne pytanie, krótkie związane. Jeśli chcę uruchomić skrypt zgodnie z jego przeznaczeniem, skrypt nie jest klasą. Nie można wywołać metody. Lika uruchamia lub wykonuje metodę. – ptomasroos
Prawdopodobnie chcesz [GroovyShell.evaluate] (http://groovy.codehaus.org/api/groovy/lang/GroovyShell.html#evaluate (java.io.File)) –