Maven2 применяет фильтрацию к файлу в упаковке типа pom
-
19-09-2019 - |
Вопрос
Я новичок в Maven.Я хочу использовать фильтрацию в многомодульном проекте.Тип упаковки родительского pom установлен на pom.Структура проекта следующая:
pom.xml
|
|______MODULE1
| |
| pom.xml
| File1_needed_to_be_filtered
|
File2_needed_to_be_filtered
Обратите внимание, что Module1 также является многомодульным проектом.Итак, скажите, пожалуйста, как применить фильтрацию к файлу1 и файлу2.И если я применяю фильтрацию в File1, то где будет храниться обработанный файл (так как файл POM, тип упаковки, POM не создает никакой папки с именем Target!) Пожалуйста, помогите мне, поскольку это очень важно для меня, и эта проблема не решается нигде. иначе в Интернете.
Решение
Вы можете использовать плагин maven-сборки - с форматом «dir» (хотя, если файлов больше одного, возможно, имеет смысл сделать из них какой-то архив).А формат дескриптора позволяет фильтровать.Это должно работать с иерархией pom и файлов, которую вы описали выше.
Однако я бы рекомендовал поместить их в родственные модули вместо родительского.Это исключает логику из вашего агрегатора, и (как только вы начнете это делать) вы можете решить, что проще использовать сборку для распространения их вместе с другими вашими компонентами, для которых вам в любом случае понадобится модуль.
Другие советы
Чтобы фильтровать ресурсы Maven при копировании, установите для фильтрации значение true
для каталога ресурсов в вашем pom.xml:
<project>
...
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filterineg>
</resource>
</resources>
</build>
</project>
Но если вы хотите фильтровать ресурсы, не помещайте их в проект с упаковкой типа pom
, это не имеет смысла (по причине, которую вы указали сами).На самом деле, я не понимаю, чего вы пытаетесь достичь (поскольку вы знаете, что все работает не так).