2010-10-06 121 views
2

我一直在使用Groovy設置腳本環境。我有一個名爲FrameworkiDatabase.groovy的Groovy腳本,它包含一個同名的類。這工作正常。我也有另外一個文件名爲connections.groovy包含了像地圖如下:將常量導入groovy腳本的最佳方法是什麼?

SUPPORT2=[ 
host:"host.name", 
port:"1521", 
db:"support2", 
username:"username", 
password:"password", 
dbType:"oracle" 
] 

該數據庫保存書籤的集合,有點像一個Oracle TNSNAMES文件,所以我並不需要記住所有的參數連接到數據庫時。

當使用groovysh時,我可以使用load命令導入它,並且它在當前範圍內可用。我怎樣才能以同樣的方式加載它作爲腳本的一部分?它沒有圍繞它的類定義 - 它需要一個嗎?我曾嘗試這樣做,並添加靜態導入,但沒有工作...

我想這樣的事情,但沒有運氣:

testFrameworkiDatabase.groovy:

import static connections 
def db = new FrameworkiDatabase(SUPPORT2) 

db.listInvalidObjects() 
db.getDBSchemaVersion() 
db.getFWiVersion() 
db.getSPVersion() 
db.getFileloaderVersion() 
db.getAdminToolVersion() 
db.getReportsVersion() 

所以我想加載這些連接作爲常量 - 有什麼辦法可以輕鬆地做到這一點?

回答

0

不知道它是最好方式,但一個方法是寫爲Connections.groovy

class Connections { 
    static SUPPORT2 = [ 
    host:"host.name", 
    port:"1521", 
    db:"support2", 
    username:"username", 
    password:"password", 
    dbType:"oracle" 
    ] 
} 

然後,groovyc Connections.groovy編譯這個生成一個類文件

然後,在你測試腳本或者在groovysh提示,你可以這樣做:

import static Connections.* 

println SUPPORT2 

爲了讓出放:

[host:host.name, port:1521, db:support2, username:username, password:password, dbType:oracle] 

如果編譯Connections.groovy類是不夠好,我覺得你要尋找在加載源成Binding對象使用的Groovy embedding techniques

一個
相關問題