首页 > 解决方案 > 在 Jenkins 中使用 groovy 脚本时出现问题

问题描述

我正在使用 groovy 脚本从 jenkins 作业中的 Prop 文件中删除内容。我在构建部分使用 groovy 插件。当值被硬编码时,我的代码工作正常。但是当我使用变量传递值时,我没有得到想要的结果。我已经在 intelliji 编辑器中测试了我的代码并得到了一些结果。你能帮我理解我做错了什么吗?

这工作正常

InputStream input = new FileInputStream("C:\\AppianDeployment\\Application.properties")
Properties prop = new Properties()
String removeApps =  "AP2"
prop.load(input)
def keyToRemove = "${removeApps}".toString()
*prop.remove("AP1")*
OutputStream output = new FileOutputStream("C:\\AppianDeployment\\Application.properties");
prop.store(output, null);

这是行不通的

InputStream input = new FileInputStream("C:\\AppianDeployment\\Application.properties")
Properties prop = new Properties()
String removeApps =  "AP2"
prop.load(input)
def keyToRemove = "${removeApps}".toString()
*prop.remove(${keyToRemove})*
OutputStream output = new FileOutputStream("C:\\AppianDeployment\\Application.properties");
prop.store(output, null);

标签: jenkinsgroovy

解决方案


Groovy 中没有这样的文字

prop.remove(${keyToRemove})

相反,您应该使用

prop.remove keyToRemove

或出于任何原因

prop.remove "${keyToRemove}".toString()

推荐阅读