このようなGroovyファイルがあります(現在)。
main.groovy
import org.packages.mystuff.JavaClassIAmUsing;
public class MyObject {
def rate(item){
def o = evaluate(new File (new File(getClass().protectionDomain.codeSource.location.path).parent),"CommonFunctions.groovy");
println o.whoami();
}
}
と呼ばれる別のグルーヴィーなファイルがあります
CommonFunctions.groovy
def whoami() {return 'no body';}
CommonFunctionsスクリプトをメインスクリプトに含めようとしていますが、ビルド時にスクリプトの場所がわかりません (つまり、スクリプト内の絶対ファイル パスまたは Java プロセスの絶対パスをどこに関連してハードコードすることはできません)。スクリプトは保存されます)。
私が知っているのは、スクリプトが一緒にあるか、呼び出し元のスクリプトに関連する場所(サブディレクトリなど)にあるということだけです。
呼び出しスクリプトの場所を見つけようとしましたが、エラーが発生しました
No signature of method: MyObject.evaluate()
GroovyClassLoader.parseClass(File)メソッドを使用して実行時にメイン スクリプトにアクセスすることを考慮して、このスクリプトを参照するにはどうすればよいですか。