Добавление записей в файл свойств перед фазой компиляции maven - PullRequest
1 голос
/ 26 декабря 2011

Мы используем maven filtering для файла свойств, в котором мы вводим номер и время сборки с сервера Jenkins.

Было бы здорово, если бы мы могли добавить туда свойства к нашемуФайл app.local.properties динамически создается, что не заставляет каждого сопровождающего проекта добавлять их (одноразовая операция, но, тем не менее, раздражает).

Я бы хотел

  • Добавить параметрыв файл свойств, до того, как подключается плагин фильтра.
  • Если целевой файл свойств не существует -> создайте его и затем добавьте.
  • Мне нужно отредактировать файл свойств в целевом каталоге (каталог src / main / resources должен остаться без изменений).

Приятно иметь:

  • Добавлять параметры конфигурации, только если они еще не определены в файле (чтобы избежать дублирования записей, добавленных вручную)

Есть ли какой-нибудь плагин / хук maven, к которому я могу подключиться, чтобы сделать это?

Ответы [ 2 ]

0 голосов
/ 08 мая 2013

вы можете создать собственное расширение сборки maven и динамически получать эти свойства из службы cetntral и вставлять их в POM в памяти сразу после запуска процесса сборки.Действительно, именно так мы решили эту проблему в нашей компании.

Я только что опубликовал полный рецепт на этот ответ Stackoverflow

0 голосов
/ 27 декабря 2011

Я вижу здесь конфликт:

  • Добавление параметров в файл свойств до того, как подключается плагин фильтра.

Так что вам нужно отредактировать свойства в src/main/resources, так как над ними работает плагин фильтра, но в то же время:

  • Мне нужно отредактировать файл свойств в целевом каталоге (каталог src / main / resources должен остаться без изменений).

Что я понимаю, вы хотели бы сделать эту фильтрацию как-то «на лету». Я не думаю, что механизмы Maven могли бы сделать это; Я бы сделал это полностью с помощью плагина Antrun (исключая файл свойств из обработки Maven), который я бы вызвал на этапе process-resources. Для редактирования и сохранения файлов свойств существует задача propertyFile ; после сохранения изменений вы можете еще раз обработать файл с помощью задачи regexp , например, чтобы применить ваши фильтры.

...