beanshell source()メソッドに相当するグルーヴィーなものはありますか?
質問
グルーヴィーなドキュメントを精査し、類似物を見つけていませんが、そこにあるものは少し偶然に整理されています。私はbeanshellからgroovyに切り替えており、beanshellでsource(" fileloc")メソッドを使用して、再利用のために他のユーティリティBeanshellスクリプトをインラインに含めていました。グルーヴィーまたはベストプラクティスでこれを行う標準機能はありますか?
解決
スクリプトのすべての部分をStringにアセンブルし、GroovyShellオブジェクトにスクリプトを評価させることができます。これをVenkat SubramaniumのDSLの例から選びました。
part1 = new File("part1.groovy").text
part2 = new File("part2.groovy").text
script = """
println "starting execution"
${part1}
${part2}
println "done execution"
"""
new GroovyShell().evaluate(script)
他のヒント
これを見つけられないのは、Groovyがコンパイルされているためです。 GroovyコードはJavaバイトコードにコンパイルされ、アプリ内のJavaコードのすぐ横でJVMによって実行されます。これが、Javaコードの大規模なボディ用にGroovified単体テストを作成するなどの作業に余分な労力を必要としない理由です。
BeanShellはJavaに似た解釈された言語であるため、実行時に別のコードを取得することは大したことではありません。
とはいえ、 groovysh とその load
コマンド。
所属していません StackOverflow