2

MyClass.groovy は

def static a(){ ... }

MyScript.groovy は MyClass を次のように使用します。

x = MyClass.a()

MyClass.groovy が MyScript.groovy と同じディレクトリにある場合、これは正常に機能します。MyClass.groovy を ~/.groovy/lib または CLASSPATH の一部である別のディレクトリに配置すると、機能しません。MyClass.groovy が現在のディレクトリにない場合、Groovy にその場所を伝える別の方法はありますか?

4

1 に答える 1

1

コマンド ラインを使用すると、スクリプトをオンザフライでコンパイルできるgroovyが自動的に使用されます。GroovyClassLoader

MyClass.groovyクラスパス フォルダに と がありMyScript.groovy、それらがまだコンパイルされていない場合、はGroovyClassLoaderそれらを自動的にコンパイルします。現在のディレクトリはクラスパスの一部であるため、現在のディレクトリに両方のファイルがある場合に機能します。

したがって、両方のファイルがクラスパスに含まれている限り、機能するはずです。

については、またはファイル./groovy/libを入れた.jarファイルを入れると動作します。ロードされるものを制御します。MyClass.classMyClass.groovyGROOVY_HOME/conf/groovy-starter.conf

# load required librarieS
load !{groovy.home}/lib/*.jar

# load user specific libraries
load !{user.home}/.groovy/lib/*.jar

# tools.jar for ant tasks
load ${tools.jar}

したがって、この構成を編集して、自動的にロードするスクリプトを配置できるパスを追加できます。例えば、

# test
load !{user.home}/.groovy/myscripts/
于 2013-03-28T09:48:18.200 に答える