Исключить узлы из пакета с помощью filevault-package-maven-plugin - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть пакет контента с узлами, который я хотел бы исключить в /content/myApp/home в проекте AEM 6.5. По какой-то причине exclude не берется, а контент добавляется в jcr. Я строю с mvn clean install -PautoInstallPackage, а проект AEM был построен с использованием архетипа AEM.

Вот мой пакет META-INF/vault/filter.xml

<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
    <filter root="/conf/myApp" mode="merge"/>
    <filter root="/content/myApp">
        <exclude pattern="/content/myApp/home"/>
    </filter>
    <filter root="/content/dam/myApp" mode="merge"/>
    <filter root="/content/experience-fragments/myApp" mode="update"/>
</workspaceFilter>

Вот как filevault-package-maven-plugin определяется в моем ui.content/pom.xml:

<plugin>
    <groupId>org.apache.jackrabbit</groupId>
    <artifactId>filevault-package-maven-plugin</artifactId>
    <extensions>true</extensions>
    <configuration>
        <allowIndexDefinitions>true</allowIndexDefinitions>
        <group>myApp</group>
        <name>myApp.ui.content</name>
        <packageType>content</packageType>
        <accessControlHandling>merge</accessControlHandling>
        <properties>
            <cloudManagerTarget>none</cloudManagerTarget>>
        </properties>
        <dependencies>
            <dependency>
                <groupId>myApp</groupId>
                <artifactId>myApp.ui.apps</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
        <subPackages>
            <subPackage>
                <groupId>com.adobe.acs</groupId>
                <artifactId>acs-aem-commons-content</artifactId>
                <filter>true</filter>
            </subPackage>
        </subPackages>
    </configuration>
</plugin>

Вот как родитель pom объявляет filevault-package-maven-plugin:

<plugin>
  <groupId>org.apache.jackrabbit</groupId>
  <artifactId>filevault-package-maven-plugin</artifactId>
  <version>1.0.3</version>
  <configuration>
    <filterSource>src/main/content/META-INF/vault/filter.xml</filterSource>
  </configuration>
</plugin>

filter.xml живет по пути src/main/content/META-INF/vault.

После сборки я вижу узлы, живущие под /content/myApp/home, которые мне не нужны.

1 Ответ

1 голос
/ 03 апреля 2020

Исходя из документации, я думаю, что ваш шаблон исключения неверен.

Документация гласит:

Элементы include и exclude могут быть добавлены в качестве необязательных дочерних элементов в элемент фильтра, чтобы обеспечить более тонкую фильтрацию поддерева во время импорта и экспорта. У них есть обязательный атрибут pattern, который имеет формат regexp . Регулярное выражение сопоставляется с полным путем соответствующего или потенциального узла JCR, поэтому оно должно начинаться с / (абсолютное регулярное выражение) или с подстановочным знаком (относительное регулярное выражение).

Ваш фильтр в данный момент не выглядит как обязательное регулярное выражение выражение:

<exclude pattern="/content/myApp/home"/>

Можете ли вы попробовать следующий исключить шаблон :

<exclude pattern="/content/myApp/home(.*)"/>

Обратите внимание на (.*) в конце шаблона. Также обратите внимание, что это будет включать в себя папки, такие как /content/myApp/home-automation. Так что для достижения желаемого результата вам, возможно, придется немного изменить шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...