Будучи новичком в groovy Я боролся с простой задачей удаления строки и добавления новой в файл (properties.file). Я не могу найти правильное и простое решение для этого случая.
Фактическая цель - изменять значение ApplicationVersion с каждым новым выпуском приложения. Версия будет установлена из другой переменной ($ version), которая будет меняться с каждым выпуском. После разных подходов я пришел к выводу, что самым простым решением будет удаление строки и добавление новой.
Учитывая следующий файл application.properties, как удалить строку 3 и добавить вместо нее новую
Или как использовать решение с подстрокой, чтобы изменить жестко запрограммированную версию 3.5.7 с новой версией $ (которая будет установлена из разных файлов).
# Application configuration
ApplicationVersion = 3.5.7
XmlMetadataFile = metadata.xml
DataPath = /home/dev/data
# linux: /home/app/data
# win: c:/data/
ApplicationLocaleLanguage = GB
ApplicationLocaleCountry = GB
Опция могла бы быть:
def applicationProperties = new File("/Users/user/app/resources/application.properties")
def fileText = applicationProperties('UTF-8')
fileText = (fileText =~ /3.5.7/).replaceAll("$version")
applicationProperties.write(fileText)
Однако это работает только один раз. Для следующего обновления версии решение (fileText = ~ /3.5.7/) не будет работать, так как 3.5.7 не будет найдено после предыдущего обновления.