Vorkompilierte Paket-Skripte

AEM as a Cloud Service unterstützt die Implementierung 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

Die Bereitstellung Ihrer Skripte als vorkompilierte gebündelte Skripte bietet die folgenden Vorteile:

  • Das Kompilieren von Skripten zur Build-Zeit ermöglicht es Entwicklern, Fehler im Entwicklungsprozess frühzeitig zu erkennen
  • Java-API-Skriptabhängigkeiten werden explizit über die Paket-Header Import-Package und Export-Package definiert
  • Vererbung (über sling:resourceSuperType) und Zuweisung zu anderen Ressourcentypen (z. B. über das data-sly-resource-Blockelement der HTL oder über das sling: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 Package-Importe

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

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 vom Inhaltspaket ui.apps bereitgestellt werden.

Unterstützung des AEM-Projektarchetyps

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.

Auf dieser Seite