在groovy中读取属性文件

时间:2015-12-08 06:09:32

标签: groovy

我试图将动态值放在ConfigSlurper(String env)的参数中,但它没有显示任何值,只有当我在ConfigSlurper中将字符串常量作为env传递时它才显示值。

    {"description":" شات اندرويد بمميزات جميلة يدعم شاشات الجوالات دعم كامل *امكانية رفع صورة عرض خآصة بكم *امكانية اظافة ايقونات واختصارات مثل : ض1, ض2 . الخ *امكانية تثبيت نك مع باسورد خاص ",
    "language":"","name":"شات فله العربي-new"}

o / p:

Ex: 
def config = new ConfigSlurper('PRODUCT').parse(propertiesFile)
println "PRODUCT_NAME: "+config.PRODUCT_NAME

但是当我尝试使用env中的动态值来读取属性文件时我得到了:

PRODUCT_NAME: TYPEB_Routing,TYPEB_Mediation,TYPEX_Routing,TYPEX_Mediation

o / p:

Ex: 
def pdt1 = "PRODUCT"
def config = new ConfigSlurper('$pdt1').parse(propertiesFile)
println "PRODUCT_NAME: "+config.PRODUCT_NAME

为什么会这样,我没有得到? 请解释....

2 个答案:

答案 0 :(得分:2)

您应该尝试在插值字符串上使用双引号,如下所示:

def config = new ConfigSlurper("${pdt1}").parse(propertiesFile)

单引号字符串不支持插值。

这是关于语法的文档。 http://docs.groovy-lang.org/latest/html/documentation/index.html#_string_interpolation

答案 1 :(得分:0)

'$pdt1'肯定不会工作'不评估GString所以传递的值将是$pdt1字面意思。您需要使用" - 双引号。

也许你还需要传递"$pdt1".toString() - 明确地将参数转换为String