事前コンパイル済みバンドルスクリプト precompiled-bundled-scripts
AEM as a Cloud Service では、ui.apps
コンポーネントスクリプトを事前コンパイル済みバンドルスクリプトとしてデプロイすることができます。これにより、開発者は、ビルド時にスクリプトを事前にコンパイルして、OSGi バンドルとしてパッケージ化することができます。
OSGi バンドルを使用して事前コンパイル済みスクリプトをデプロイするメリット advantages
スクリプトを事前コンパイル済みバンドルスクリプトとしてデプロイすると、次の利点があります。
- ビルド時にスクリプトをコンパイルすると、開発者が開発プロセスの早期にエラーを検出できます。
- Java API スクリプトの依存関係は、
Import-Package
およびExport-Package
バンドルヘッダーを使用して明示的に定義されます。 - (
sling:resourceSuperType
を使用した)継承および(例えば HTL のdata-sly-resource
ブロック要素やsling:include
JSP タグなどを使用した)他のリソースタイプへの委任は、バンドルのメタデータを使用してマッピングできます。 - リソースタイプのバージョン管理を、Java API と同様の方法で適用できます。
事前コンパイルとパッケージの読み込み precompilation
htl-maven-plugin
は HTL スクリプトの構文を検証できますが、HTL スクリプトを Java クラスにトランスパイルする場合にも使用できます。これらは Maven プロジェクトの generated-sources
フォルダーに追加され、maven-compiler-plugin
によって選択されます。
bnd-maven-plugin
を追加して、Java API インポート用に OSGi バンドルのメタデータを生成できます。
継承と委任 inheritance-delegation
OSGi フレームワークは、様々なコンポーネント間のコントラクト表現する要件と機能を定義する強力な方法を提供します。これらはメタデータを使用して記述され、実行時に適用されます。バンドルスクリプトでは、このメカニズムを使用して、継承関係(sling:resourceSuperType
)と委任(レンダリングプロセスにおける他のリソースタイプを含む)の両方を表現します。
[ui.apps
によって提供されるスクリプトに対応する要件と機能を抽出するには、scriptingbundle-maven-plugin プロジェクトの bnd
プラグインを使用できます。](https://experienceleague.adobe.com/docs/experience-manager-cloud-service/implementing/developing/aem-project-content-package-structure.html?lang=ja#code-packages-%2F-osgi-bundles) コンテンツパッケージ
AEM プロジェクトアーキタイプのサポート support
バージョン 31 からは、AEM プロジェクトアーキタイプでは、事前コンパイル済みバンドルスクリプトを使用するように AEM as a Cloud Service プロジェクトを正しく設定できます。
さらに、AEM プロジェクトアーキタイプでは、Java パッケージレベルとスクリプトレベルでの依存関係を検証するように AEM as a Cloud Service SDK の Build Analyzer Maven プラグインを設定します。