Groovyスクリプトから、別のGroovyスクリプトを呼び出す方法
2ちゃんねる や、 他のGroovyに関するブログ でも、
別のスクリプトファイルをimportするにはどうしたらよいのか? という疑問が多いようです。
Contents
手段その1 : classファイル化して読み込む方法
簡単に思いつく方法として以下の流れでimportする方法があります。
- Groovyファイルをgroovycコマンドでコンパイルする
- コンパイルして出来たclassファイルをimportする
手段その2 : Groovyスクリプトファイルをそのままimportする方法
では、コンパイルせずにGroovyスクリプトのクラスを利用できないか?
いろいろ試した結果、非常に簡単なことが分かりました。
例を挙げます。
Main.groovy
ファイルから Printer.groovy
ファイル内のクラスを利用するケースを想定します。
Printer.groovy
class Printer {
def print() {
println "出力しました"
}
}
Main.groovy
def printer = new Printer()
printer.print()
問題は実行時のオプション。
# ファイルが有るかを確認
$ ls *.groovy
Main.groovy Printer.groovy
# 実行!
$ groovy -c UTF8 -cp . Main.groovy
出力しました
注意点
-cp
オプションはgroovy
コマンド実行時に指定するクラスパスになります。- 2つのスクリプトは同じディレクトリに配置します。
要は、呼び出し対象のスクリプト配置ディレクトリにクラスパスを通してあげればいい、ということです。
以下のように、OSの CLASSPATH環境変数 に設定されているディレクトリに Printer.groovy
スクリプトを配置してもしてもOKです。
# 別ディレクトリに移動させる
$ mv Printer.groovy /tmp
# 環境変数だけ設定しておく
$ export CLASSPATH=/tmp
$ groovy Main.groovy
出力しました
ディスカッション
コメント一覧
まだ、コメントがありません