Vorkompilierte Paket-Skripte precompiled-bundled-scripts
AEM as a Cloud Service unterstützt die Bereitstellung der ui.apps
-Komponentenskripte als vorkompilierte Paket-Skripte. Dadurch können Entwickler ihre Skripte zur Build-Zeit vorkompilieren und als OSGi-Pakete verpacken.
Vorteile der Bereitstellung vorkompilierter Skripte über OSGi-Pakete advantages
Die Bereitstellung Ihrer Skripte als vorkompilierte, gebündelte Skripte bietet die folgenden Vorteile:
- Das Kompilieren von Skripten zur Build-Zeit ermöglicht es Entwickelnden, Fehler im Entwicklungsprozess frühzeitig zu erkennen.
- Java-API-Skriptabhängigkeiten werden explizit über die Paket-Header
Import-Package
undExport-Package
definiert. - Vererbung (über
sling:resourceSuperType
) und Zuweisung zu anderen Ressourcentypen (z. B. über dasdata-sly-resource
-Blockelement der HTL oder über dassling:include
-JSP-Tag) können über die Metadaten des Pakets zugeordnet werden - Die Versionierung von Ressourcentypen kann auf ähnliche Weise erzwungen werden wie bei den Java-APIs.
Vorkompilierung und Paketimporte precompilation
Das htl-maven-plugin
kann die Syntax von HTL-Skripten überprüfen, es kann aber auch verwendet werden, um die HTL-Skripte in Java-Klassen zu übertragen. Diese werden dann zum Ordner generated-sources
Ihres Maven-Projekts hinzugefügt und vom maven-compiler-plugin
abgerufen.
Das bnd-maven-plugin
kann hinzugefügt werden, um die Metadaten des OSGi-Pakets für Java-API-Importe zu generieren.
Vererbung und Zuweisung inheritance-delegation
Das OSGi-Framework bietet eine leistungsstarke Möglichkeit, Anforderungen und Funktionen zu definieren, um Verträge zwischen verschiedenen Komponenten auszudrücken. Diese werden über Metadaten beschrieben und zur Laufzeit erzwungen. Gebündelte Skripte verwenden diesen Mechanismus, um sowohl ihre Vererbungsbeziehungen (sling:resourceSuperType
) als auch ihre Zuweisung (einschließlich anderer Ressourcentypen im Rendering-Prozess) auszudrücken.
Das bnd
-Plug-in aus dem Projekt scriptingbundle-maven-plugin kann verwendet werden, um die Anforderungen und Funktionen zu extrahieren, die den Skripten entsprechen, die von ui.apps
bereitgestellt werden.Inhaltspaket
Unterstützung des AEM-Projektarchetyps support
Ab Version 31 kann der AEM-Projektarchetyp verwendet werden, um ein AEM as a Cloud Service-Projekt korrekt einzurichten und vorkompilierte, gebündelte Skripte zu verwenden.
Darüber hinaus konfiguriert der AEM-Projektarchetyp das AEM as a Cloud Service SDK Build Analyzer Maven-Plug-in, um die Abhängigkeiten auf Java-Paket-Ebene sowie auf Skript-Ebene zu überprüfen.