2010-10-06 95 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

一个
相关问题