Я работаю над 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
Для этого я написал отличный сценарий ниже,
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
useranon
28 Дек 2016 в 12:58
Уточните, используете ли вы этот код в сценарии задания конвейера или на этапе сборки (System) Groovy.
– izzekil
28 Дек 2016 в 14:33
- Я запустил этот скрипт на этапе сборки System Groovy.
– useranon
28 Дек 2016 в 14:37
1 ответ
Лучший ответ
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()}")
}
}
Решает вопрос
0
useranon
28 Дек 2016 в 17:52
Похожие вопросы
Новые вопросы
jenkins
Jenkins - это инструмент непрерывной интеграции с открытым исходным кодом, написанный на Java, который имеет пакеты для Linux, Mac OS X, Windows, FreeBSD и OpenBSD. Проект был раздвоен от Гудзона.