我一直在使用Groovy设置脚本环境。我有一个名为FrameworkiDatabase.groovy的groovy脚本,它包含一个同名的类。这很好用。我还有另一个名为connections.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 :(得分: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
类不够好,我认为您将考虑使用Groovy embedding techniques <之一将源加载到Binding
对象中/ p>