Исключая ресурс при упаковке в Maven

У меня есть проект с образцом структуры как:

jcr_root |_apps |_A |_B |_etc |_A |_B

Что мне нужно сделать, так это то, что при создании пакета мне нужно указать "apps/A & etc/A" или "apps/B & etc/B"

В моем pom.xml я пробовал что-то вроде:

<resources>
       <resource>
        <directory>src/main/content/jcr_root</directory>
            <excludes>
            <exclude>apps/A/**</exclude>
                        <exclude>etc/A/**</exclude>
                </excludes>
     </resource>
</resources>

Но все же и "A", и "B" в приложениях и т. Д. Включаются при упаковке. я использую content-package-maven-plugin создать пакет, который будет развернут на CQ.

Я попытался поместить записи в filter.xml, но затем он используется при развертывании, а не при упаковке.

Кажется, теги include / exclude вообще не работают. Для тестирования я попробовал:

<resources>
   <resource>
    <directory>src/main/content/jcr_root</directory>
        <excludes>
        <exclude>**/*.otf</exclude>
                    </excludes>
   </resource>
</resources>

Но все же файл fonts.otf был включен в упакованный zip.

Некоторая помощь или подсказки, пожалуйста. Дайте мне знать, если потребуется дополнительная информация.

Спасибо заранее.

2 ответа

Итак, наконец я смог создать пакет с исключенными ресурсами.

Проблема была не в теге include/exclude (они всегда работали нормально).

Файлы после исключения какого-либо ресурса были скопированы в каталог "target/classes". Проблема заключалась в том, что плагин maven-content-package переносил ресурс в пакет из исходного исходного каталога, а не из созданного каталога "target/classes". Таким образом, он всегда включал все, Это поведение по умолчанию для плагина maven-content-package.

Таким образом, мне пришлось явно указать плагину, что вам нужно выбрать ресурс для упаковки из "target/classes".

<builtContentDirectory>${basedir}/target/classes</builtContentDirectory>

Пожалуйста, дайте мне знать, если кому-то нужно больше подробностей. Спасибо за все ваши ответы:)

Поскольку вы хотите включить jcr_root/app/A и jcr_root/etc/A, пожалуйста, попробуйте использовать это в POM.xml:

<project>
    ...
    <resources>
    <resource>
        <directory>jcr_root</directory>
        <includes>
            <include>**/*A*</include>
        </includes>
        <excludes>
            <exclude>**/*B*</exclude>
        </excludes>
    </resource>
    <resources>
</project>

Точно так же вы можете сделать это для получения jcr_root/app/B и jcr_root/etc/B.

С уважением

Jyotsna

Другие вопросы по тегам