将常量导入groovy脚本的最佳方法是什么?
问题描述:
我一直在使用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()
所以我想加载这些连接作为常量 - 有什么办法可以轻松地做到这一点?
答
不知道它是最好方式,但一个方法是写为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