У меня есть веб-приложение Знатока с текстовыми файлами в
src/main/webapp/textfilesdir
Насколько я понимаю во время фазы пакета этот textfilesdir каталог будет скопирован в
target/project-1.0-SNAPSHOT
каталог, который затем заархивирован в a
target/project-1.0-SNAPSHOT.war
Проблема
Теперь, я должен сделать строковую замену на содержании текстовых файлов в target/project-1.0-SNAPSHOT/textfilesdir. Это должно затем быть сделано после того, как textfilesdir копируется в target/project-1.0-SNAPSHOT, но до target/project-1.0-SNAPSHOT.war создаваемый файл. Я полагаю, что это все сделано во время фазы пакета.
Как может плагин (потенциально maven-antrun-plugin), включить фазу пакета, чтобы сделать это.
Текстовые файлы не содержат свойства, как $ {имя свойства} для фильтрации на. Строковая замена вероятна единственная опция.
Опции
Измените текстовые файлы после копии в target/project-1.0-SNAPSHOT каталог, все же до ВОЕННОГО создания.
После упаковки извлеките текстовые файлы из ВОЙНЫ, измените их и добавьте их назад в ВОЙНУ.
Я думаю, что существует другая опция здесь, я отсутствую. Мысли кто-либо?
Вариант 1 невыполним, prepare-package
слишком рано, пакет
слишком поздно, поэтому я не вижу, где вы могли бы подключить любой нестандартная работа. Вариант 2 выполнимый, но болезненный ИМО. Итак, вот еще несколько предложений (все основаны на AntRun и задачах ReplaceRegExp и / или Replace ).
Решение 1:
prepare-package
и настройте его для обработки файлов и помещения обработанных файлов в какой-либо каталог в target
(например, target / textfilesdir
]). target / textfilesdir
в качестве веб-ресурса
. См. Добавление и фильтрация внешних веб-ресурсов для получения подробной информации. Решение 2:
prepare-package
и настройте его для обработки текстовых файлов из src / main / webapp / textfilesdir
и поместите обработанные файлы в target / project-1.0-SNAPSHOT
. Я бы выбрал второе решение.