[英]Using a class not in current directory in a Groovy script
MyClass.groovy有
def static a(){ ... }
MyScript.groovy使用MyClass像這樣:
x = MyClass.a()
如果MyClass.groovy與MyScript.groovy位於同一目錄中,則此方法很好。 如果我將MyClass.groovy放在〜/ .groovy / lib或CLASSPATH中的另一個目錄中,則它將不起作用。 如果MyClass.groovy不在當前目錄中,還有另一種方法可以告訴Groovy在哪里找到它嗎?
使用groovy
的命令行時,我們將自動使用GroovyClassLoader
,它能夠即時編譯腳本。
如果您在類路徑文件夾中有MyClass.groovy
和MyScript.groovy
,但尚未編譯,則GroovyClassLoader
將自動編譯它們。 由於當前目錄是類路徑的一部分,因此當您在當前目錄中同時擁有兩個文件時,它將起作用。
因此,只要兩個文件都包含在類路徑中,它就應該起作用。
關於./groovy/lib
,如果您在其中放置了帶有MyClass.class
或MyClass.groovy
文件的.jar
文件,則可以使其工作。 GROOVY_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/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.