adobe / aem-project-archetype

Maven template to create best-practice websites on AEM.
https://experienceleague.adobe.com/docs/experience-manager-core-components/using/developing/archetype/overview.html
Apache License 2.0
544 stars 418 forks source link

ui.apps.structure should be built before ui.apps #1076

Closed sadhakim closed 1 year ago

sadhakim commented 1 year ago

Expected Behaviour

Updates to ui.apps.structure are not seen by ui.apps unless you build ui.apps.structure on its own. Instead if you just change the module order then ui.apps will always get the latest ui.apps.structure settings

Actual Behaviour

Updates to ui.apps.structure are not visible to ui.apps

Reproduce Scenario (including but not limited to)

Update the section in ui.apps.structure to include more "roots". The roots do not become visible to ui.apps unless the code is built independently and your build will fail.

Steps to Reproduce

  1. Update pom.xml in ui.apps.structure to include a new root. <filter><root>/apps/foo/bar</root></filter>
  2. Update filter.xml in ui.apps/src/main/content/META-INF/vault/filter.xml with a new root <filter root="/apps/foo/bar/foo"/>
  3. Build your project mvn clean install
  4. Your build will fail with a validation error: [ERROR] ValidationViolation: "jackrabbit-filter: Filter root's ancestor '/apps/foo/bar/foo' is not covered by any of the specified dependencies nor a valid root.", filePath=META-INF/vault/filter.xml

Platform and Version

Mac OS X, FileVault 1.30

sadhakim commented 1 year ago

Not an issue. Maven automatically determines the order to build your modules based on inter connected dependecies. It doesnt matter which order you list them in. The issue is that if you build a singlar module (like ui.apps) then it wont rebuild ui.apps.strucuture and any changes you made to ui.apps.structure wont be reflected. You have to manually build ui.apps.strucuture and then build ui.apps or you can build the root project (which will build the dependencies in order).