Изменение файла .content.xml локально не отражается в CRX с использованием maven-vault-plugin

Я новичок в материалах AEM / CRX / JCR, поэтому я чувствую, что может быть что-то фундаментальное, что мне не хватает, но я просто нигде не могу найти ответ. Я уже рассмотрел этот вопрос.

Вот в чем проблема:

  • Я меняю значение атрибута в некотором файле .content.xml (например, jcr: title = "NewValue") из моей локальной файловой системы.
  • Я запускаю mvn clean install -Pauto-deploy (информация профиля автоматического развертывания прилагается ниже)
  • После его завершения я открываю http://localhost:4502/crx/de/index.jsp и перейдите к измененному мной узлу jcr: content.
  • По-прежнему отображается старое значение свойства (например, jcr: title = "OldValue").

Если я удалю узел jcr: content с помощью CRXDE lite, а затем снова запустил maven, узел будет нормально работать с обновленными значениями. Итак, я знаю, что узел переходит из моей локальной файловой системы в CRX нормально, просто не похоже, что он перезаписывается, когда уже есть значение. Я чувствую, что должен быть какой-то параметр, который я пропустил или реализовал неправильно.

Сообщите мне, если потребуется дополнительная информация. Обратите внимание, что я не хочу использовать vlt напрямую, поскольку в нашем конвейере сборки используется maven. Заранее спасибо за помощь!

профиль автоматического развертывания (конфигурация плагина хранилища)

<plugin>
    <groupId>com.day.jcr.vault</groupId>
    <artifactId>maven-vault-plugin</artifactId>
    <version>0.0.10</version>
    <executions>
        <execution>
            <id>install-package</id>
            <goals>
                <goal>install</goal>
            </goals>
            <configuration>
                <verbose>true</verbose>
                <packageFile>${project.build.directory}/${project.build.finalName}.zip</packageFile>
                <targetURL>http://${cq.host}:${cq.port}/crx/packmgr/service.jsp</targetURL>
                <userId>${cq.user}</userId>
                <password>${cq.password}</password>
                <properties>
                  <acHandling>Overwrite</acHandling>
                </properties>
            </configuration>
        </execution>
    </executions>
</plugin>

Изменить плагин maven-resources

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-content-resources</id>
            <phase>process-resources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/vault-work</outputDirectory>
                <warSourceExcludes>**/*.scss</warSourceExcludes>
                <resources>
                    <resource>
                        <directory>${basedir}/src/main/content</directory>
                        <filtering>true</filtering>
                        <excludes>
                            <exclude>**/.svn</exclude>
                            <exclude>**/.vlt</exclude>
                            <exclude>**/*.scss</exclude>
                            <exclude>**/.vltignore</exclude>
                            <exclude>**/.DS_Store</exclude>
                            <exclude>**/*.scss</exclude>
                        </excludes>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

Изменить. Я понял, что стоит отметить, что файл .content.xml, который я пытаюсь изменить и нажать, находится в / etc / designs.


person Uncharted Space    schedule 12.07.2016    source источник


Ответы (2)


Есть два других плагина, которые настроены на сборку пакета в первую очередь. maven-vault-plugin предназначен только для развертывания в AEM.

Посмотрите на свой POM с конфигурациями плагинов для -

  • maven-resources-plugin - это будет копировать ваш XML-контент в целевое расположение.
  • content-package-maven-plugin - он будет генерировать пакет

Для maven-resources-plugin проверьте, что он копирует ваш .content.xml в целевое местоположение, а для content-package-maven-plugin проверьте, что установлены правильные значения фильтра.

Еще одна вещь, которую нужно проверить, - это извлечь сгенерированный пакет и проверить, есть ли в нем изменения или нет, или просмотреть рабочий каталог хранилища в целевом объекте и перейти в каталог, в котором вы изменили .content.xml, проверить, есть ли в нем изменения .

Если ваши изменения есть в vault-works, тогда плагин maven-resources работает абсолютно нормально, и проблема может быть в плагине content-package-maven-plugin.

Если вам нужна дополнительная помощь, поделитесь подробностями о конфигурации этих двух плагинов.

person Ameesh Trikha    schedule 12.07.2016
comment
Я добавил к вопросу конфигурацию плагина maven-resources-plugin. Я искал свой проект и эффективный POM, но не нашел никаких ссылок на content-package-maven-plugin. Я вижу, что изменения в .content.xml отражаются как в пакете, который создается локально, так и в установленном пакете содержимого, загруженном из локального экземпляра AEM. Только в CRXDE lite я не вижу изменения свойства папки (даже после обновления). - person Uncharted Space; 13.07.2016
comment
Тогда единственная возможная причина, о которой я могу думать, - это то, что ваш xml плохо сформирован, что-то отсутствует или нарушает его. Вы можете проверить это с помощью xml-валидатора или, если у вас настроен VaultClipse (Eclipse) или IntelliVault (IntelliJ) или простой инструмент Vlt, попробуйте нажать только обновленный xml, если есть проблемы, вы увидите их в журналах. - person Ameesh Trikha; 13.07.2016
comment
Я провел еще один тест, обновив файл .content.xml, находящийся в / apps / [название проекта] / components. Это обновление отлично показало CRXDE lite. Но когда я локально изменяю файл .content.xml в / etc / designs / [название проекта], это не отражается. Оба пути разрешены файлом filter.xml. Я подумал, есть ли у / etc / designs какие-то особые разрешения, поскольку они обычно используются в диалоговых окнах дизайна? - person Uncharted Space; 19.08.2016

Обычно у вас должна быть такая структура:

jcr_root
META-INF
--- vault
    --- config.xml
    --- filter.xml
    --- settings.xml

в filter.xml будут некоторые правила для включения / исключения узлов, убедитесь, что ваш xml-файл не исключен.

person Ahmed Musallam    schedule 20.07.2016