如何在Groovy腳本中包含幾個類?在groovy腳本中包含類
(這個問題有沒有關係休息,但我使用REST提出這個問題在正確的上下文中)
背景: 我開發在Groovy一個CLI獲得來自服務,我們的狀態信息運行。狀態信息作爲REST界面公開。
根據我在CLI上給出的參數,在REST接口上調用不同的路徑。我還將實際的REST通信放在類層次結構中,以便能夠重用代碼,這就是我遇到問題的地方。我怎樣才能以簡單的方式在我的groovy腳本中包含類層次結構?
Groovy的CLI腳本RestCli.groovy
import restcli.RestA
import restcli.RestB
if(args[0] == "A") {
new RestA().restCall()
}
else if(args[0] == "B") {
new RestB().restCall()
}
爲hierarcy超類restcli/RestSuper.groovy
package restcli
abstract class RestSuper {
protected def restCall(String path) {
println 'Calling: ' +path
}
abstract def restCall()
}
兩個類來實現不同的呼叫。 restcli/RestA.groovy
package restcli
class RestA extends RestSuper {
def restCall() {
restCall("/rest/AA")
}
}
和restcli/RestB.groovy
package restcli
class RestB extends RestSuper {
def restCall() {
restCall("/rest/BB")
}
}
我想要得到的結果很簡單:
> groovy RestCli.groovy B
Calling: /rest/BB
如何做到這一點任何想法?
我真的想避免創建一個jar文件,然後使用-classpath
選項,因爲我還使用@Grab
得到HTTP建設者,如果我使用-classpath
然後我得到的問題,像這樣:java.lang.NoClassDefFoundError: groovyx.net.http.HTTPBuilder
謝謝!很簡單的解決方案 – lagurz