Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

So, before looking in detail on any of the validation errors or warnings, check that the package type is correct. The validations applied on the package depend depends on the package type.

If your package contains a mixture of the different package types you should split up or refactor your packages so that each one complies with one of the requirements of the first three package types. This is also important if you migrate to the AEM as a Cloud Service later on.

If you have packages that contain application content below /etc you should move this to /apps, see also How to switch your AEM Client Library to Proxy Mode for the most common use case.

Validation rule violations

The validation messages which are printed by the plugin are usually quite self-explanatory. Try to fix them one-by-one until your build runs fine. Also check the warnings and try to resolve the issues as well.

...

If this affects an application package (e.g. ui.apps or complete package) you should define an “apps-repository-structure” and reference it via repositoryStructurePackages in your application package. See AEM documentation and FileVault Package Maven Plugin documentation for further details.If you do not want to define this extra package and are sure that the missing path will always exist when the package gets installed you can also reconfigure the filter to define the missing root as “valid root”and affects content paths you are sure that exist already (e.g. because they are AEM standard paths, or because they are already created by other means, e.g repoinit or other packages), customize the validator to allow those parent paths:

Code Block
languagexml
<validatorsSettings>
  <jackrabbit-filter>
    <options>
      <validRoots>/apps/myapp</validRoots>
    </options>
  </jackrabbit-filter>
</validatorsSettings>

The Adobe AEM project archetypes uses an “apps-repository-structure” package and references it via repositoryStructurePackages property. But this approach is more verbose and requires a separate maven module to achieve the same result. So it’s recommended to use the validRoots configuration approach.

Given root node name 'xxx:yyy' (implicitly given via filename) cannot be resolved

...

the folder name contains an escaped namespace (like _cq_tags), but the namespace declaration of “cq” is missing in the contained .content.xml. Solution: Add the missing namespace declaration, or re-export the package from AEM using the latest wcmio-content-package-maven-plugin.

Last resort:

...

Disable Validators

If you have a content package with a very “legacy” structure and you currently at the moment do not have the time to really solve the reported violations, and currently do not have to care about requirements like AEM cloud service AEMaaCS compatibility, you can switch to an older version of the plugin that does not contain all these new validationsdisable some or all validators. (warning) Use this only as last resort.

Example for disabling two validators (full list see here):

Code Block
languagexml
<plugin>
  <groupId>org.apache.jackrabbit</groupId>
  <artifactId>filevault-package-maven-plugin</artifactId>
  <!-- This is a content package with a lot of legacy stuff that is not compatible with the package validations from the lastest plugin versions -->
  <version>1.0.3</version><configuration>
    <jackrabbit-packagetype>
      <isDisabled>true</isDisabled>
    </jackrabbit-packagetype>
    <jackrabbit-filter>
      <isDisabled>true</isDisabled>
    </jackrabbit-filter>
  </configuration>
</plugin>

...

Page Properties
hiddentrue

Related issues