gpt4 book ai didi

groovy - 使用 Groovy 从属性文件中获取值

转载 作者:行者123 更新时间:2023-12-03 07:06:32 28 4
gpt4 key购买 nike

如何使用 Groovy 从属性文件中获取值?

我需要一个属性文件(.properties),其中文件名作为键,目标路径作为值。我需要在运行时解析 key ,具体取决于需要移动的文件。

到目前为止,我似乎能够加载属性,但无法从加载的属性中“获取”值。

我提到了该线程:groovy: How to access to properties file?以下是我到目前为止的代码片段

def  props = new Properties();
File propFile =
new File('D:/XX/XX_Batch/XX_BATCH_COMMON/src/main/resources/patchFiles.properties')
props.load(propFile.newDataInputStream())
def config = new ConfigSlurper().parse(props)
def ant = new AntBuilder()
def list = ant.fileScanner {
fileset(dir:getSrcPath()) {
include(name:"**/*")
}
}
for (f in list) {
def key = f.name
println(props)
println(config[key])
println(config)
def destn = new File(config['a'])

}

属性文件目前包含以下条目:

jan-feb-mar.jsp=/XX/Test/1
XX-1.0.0-SNAPSHOT.jar=/XX/Test/1
a=b
c=d

如果我使用 props.getProperty('a') 进行查找,则会返回正确的值或者,配置['a']还尝试了代码:notation

但是一旦切换到使用变量“key”,如 config[key] 中所示,它就会返回 --> [:]

我是 groovy 的新手,无法说出我在这里缺少什么。

最佳答案

在我看来,你把事情搞得太复杂了。

这是一个可以完成这项工作的简单示例:

对于给定的test.properties文件:

a=1
b=2

此代码运行良好:

Properties properties = new Properties()
File propertiesFile = new File('test.properties')
propertiesFile.withInputStream {
properties.load(it)
}

def runtimeString = 'a'
assert properties."$runtimeString" == '1'
assert properties.b == '2'

关于groovy - 使用 Groovy 从属性文件中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20871441/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com