我正在研究Jenkins并使用Groovy脚本自动化部署过程。
为了处理密码,我保留了一个XML文件 - passwords.xml
<APP1>
<development>
<schema>
<db1>pass1234</db1>
</schema>
</development>
<test>
<schema>
<db1>pass1234</db1>
</schema>
</test>
<production>
<schema>
<db1>pass1234</db1>
</schema>
</production>
</APP1>
现在我正在尝试创建一个属性文件,如
APP1.development.schema.db1=pass1234
APP1.test.schema.db1=pass1234
APP1.production.schema.db1=pass1234
我写了下面的groovy脚本,
def passwords_rails_app = var_workspace + "/passwords.properties"
def passwords = new XmlParser().parseText(props_credential.passwords_url.text)
PrintWriter writer_passwords_rails_app = new PrintWriter(passwords_rails_app)
passwords.'**'.findAll{
writer_passwords_rails_app.println(it.name() + "=" + it.name())
}
writer_passwords_rails_app.close()
但这只是创建属性文件,而不是在属性文件中写入节点名称。
建议我。
答案 0 :(得分:0)
rootNode.APP.each{ APP ->
APP.development.schema.children().each{ tag ->
writer_passwords_rails_app.println("${APP.@title}.development.schema.${tag.name()}=${tag.text()}")
}
APP.test.schema.children().each{ tag ->
writer_passwords_rails_app.println("${APP.@title}.test.schema.${tag.name()}=${tag.text()}")
}
APP.production.schema.children().each{ tag ->
writer_passwords_rails_app.println("${APP.@title}.production.schema.${tag.name()}=${tag.text()}")
}
}
解决问题