2010-03-12 6 views
5

Я новичок в maven. Я хочу использовать фильтрацию в многомодульном проекте. Тип упаковки родительского помпа установлен в pom. Структура проекта выглядит следующим образом:Maven2, применяя фильтрацию к файлу под упаковкой типа pom

pom.xml 
    | 
    |______MODULE1 
    |  | 
    |  pom.xml 
    |  File1_needed_to_be_filtered 
    | 
    File2_needed_to_be_filtered 

Обратите внимание, что Module1 также является многомодульным проектом. Итак, скажите, пожалуйста, как я могу применить фильтрацию к файлам1 и file2. И если я применил фильтрацию к файлу 1, тогда где будет храниться обработанный файл (так как файл pom, тип упаковки которого pom, не создает ни одной папки с именем target!) Пожалуйста, помогите мне, так как это очень важно для меня, и эта проблема решена больше нигде в Интернете.

ответ

0

Чтобы Maven фильтра ресурсов при копировании, установите фильтрацию true для каталога ресурсов в вашем pom.xml:

<project> 
    ... 
    <build> 
    <resources> 
     <resource> 
     <directory>src/main/resources</directory> 
     <filtering>true</filterineg> 
     </resource> 
    </resources> 
    </build> 
</project> 

Но если вы хотите, чтобы фильтровать ресурсы, не ставят их в проект с упаковка типа pom, это не имеет смысла (по той причине, что вы дали себе). На самом деле, я не понимаю, чего вы пытаетесь достичь (поскольку вы знаете, что это не так, как все работает).

+0

Эй, паскаль, в первую очередь, за ваш интерес. На самом деле мне нужно использовать многомодульный проект, поэтому я использую тип упаковки pom. Также файл, который нужно отфильтровать, отсутствует в папке src/main/resources, он находится в корневой папке родителя. Я не могу изменить иерархию файлов, поэтому я просматриваю все эти проблемы. – Harmit

+0

@ Hamit Упаковка pom прекрасна (и на самом деле требуется) для агрегации модулей вашей мультимодульной установки, но я боюсь, что вы не сможете фильтровать ресурсы в таких модулях. Я не понимаю, как эти «фильтрованные» ресурсы должны использоваться. Что вы собираетесь с ними делать, поскольку они находятся в модуле типа pom? –

+0

Эти ресурсы являются файлами свойств. Эти файлы (file1 и file2) будут скопированы в удаленное местоположение вместе с другими файлами, созданными после фильтрации и компиляции. Эти файлы конфигурации также используются подмодулями. Мне нужно установить значения в этих файлах вручную, поэтому я думал об использовании фильтрации. Но я боюсь, что есть какой-то способ сделать это. – Harmit

4

Вы можете использовать maven-assembly-plugin - с форматом 'dir' (хотя, если есть более одного файла, может иметь смысл сделать его архивом). descriptor format позволяет фильтровать. Это должно работать с иерархией pom и file, описанной выше.

Однако я бы рекомендовал разместить их в модулях для родных, а не в родительском. Это избавляет логику от вашего агрегатора pom, и (как только вы начнете это делать), вы можете решить, что проще использовать сборку, чтобы распространять их вместе с другими вашими компонентами, для которых вам нужен модуль в любом случае.

+0

Привет, Зак, спасибо за ответ. На самом деле, я уже выбрал второй вариант. Однако я хотел бы попробовать ваш первый вариант, когда бывало некоторое время. – Harmit

 Смежные вопросы

  • Нет связанных вопросов^_^