AEM プロジェクトアーキタイプの使用 using-the-archetype
このドキュメントでは、AEM プロジェクトのアーキタイプを使用して、最小限のベストプラクティスベースの Adobe Experience Manager プロジェクトを独自の AEM プロジェクトの起点として作成できる方法について説明します。
一般的な使用パターンと、アーキタイプで何が行えるかに焦点を当てます。ビルドオプションと技術的な手順について詳しくは、アーキタイプの GitHub リポジトリにあるドキュメントを参照してください。
はじめに getting-started
プロジェクトのアーキタイプを使用すると、AEM での開発を簡単に開始できます。アーキタイプにおける最初の手順には、いくつかの方法があります。
- WKND チュートリアル - アーキタイプの活用方法など、AEM での開発に関する概要について詳しくは、AEM Sites の概要 - WKND チュートリアルを参照して、アーキタイプを使用した単純なプロジェクトの実装手順を示す実例を確認してください。
- WKND イベントチュートリアル - AEM でのシングルページアプリケーション(SPA)の開発に特に関心がある場合は、専用の WKND イベントチュートリアルを確認してください。
- 独自に開始する。 - GitHub で利用可能な現在のプロジェクトのアーキタイプを簡単にダウンロードして、最初のプロジェクトを独自に作成できます。
アーキタイプの使用方法 how-to-use-the-archetype
アーキタイプを使用する最初の手順は、ローカルファイル構造内にモジュールを生成するプロジェクトを作成することです。プロジェクト生成の一環として、プロジェクト名、バージョン、様々なオプションの有効化など、プロジェクトの多数のプロパティを定義できます。
Maven でプロジェクトを構築すると、AEM にデプロイできるアーティファクト(パッケージおよび OSGi バンドル)が作成されます。追加の Maven コマンドおよびプロファイルを使用して、プロジェクトのアーティファクトを AEM インスタンスにデプロイできます。
アーキタイプを使用して得られる結果 what-you-get
アーキタイプはモジュールで構成され、すべてのモジュールはアーキタイプの使用時に自動的に作成されます。
- coreは、OSGi サービス、リスナー、スケジューラーなどのすべてのコア機能およびサーブレットやリクエストフィルターなどのコンポーネント関連の Java コードを含む Java バンドルです。
- it.tests は、Java ベースの統合テストです。
- ui.apps には、プロジェクトの
/apps
と/etc
の部分(JS および CSS クライアントライブラリ、コンポーネント、テンプレート)が含まれます。 - ui.content には、ui.apps モジュールのコンポーネントを使用するサンプルコンテンツが含まれます。
- ui.config には、プロジェクトの実行モード固有の OSGi 設定が含まれます。
- ui.frontend.general には、一般的な Webpack ベースのフロントエンドのビルドモジュールの使用に必要なアーティファクトが含まれます(オプション)。
- ui.frontend.react (オプション) には、アーキタイプを使用して React に基づく SPA プロジェクトを作成する場合に必要なアーティファクトが含まれます(ビルドパラメーターに基づくオプション)。
- ui.frontend.angular (オプション) には、アーキタイプを使用して Angular に基づく SPA プロジェクトを作成する場合に必要なアーティファクトが含まれます(ビルドパラメーターに基づくオプション)。
- ui.tests には Selenium ベースの UI テストが含まれます。
- all は、ベンダー依存関係を含むすべてのコンパイル済みモジュール(バンドルとコンテンツパッケージ)を組み込んだ単一のコンテンツパッケージです。
- dispatcher.ams には、AMS/オンプレミスプロジェクトの基本的な Dispatcher 設定が含まれます(ビルドパラメーターに基づくオプション)。
- dispatcher.cloud には、AEMaaCS プロジェクトの基本的な Dispatcher 設定が含まれています(ビルドパラメーターに基づくオプション)。
Maven で表されるアーキタイプのモジュールは、アプリケーション、コンテンツおよび必要な OSGi バンドルを表すコンテンツパッケージとして AEM にデプロイされます。
親 POM parent-pom
プロジェクトのルートにある pom.xml
(<src-directory>/<project>/pom.xml
)は親 POM と呼ばれ、プロジェクトの構造を駆動し、プロジェクトの依存関係と特定のグローバルプロパティを管理します。
グローバルプロジェクトプロパティ global-properties
親 POM の <properties>
セクションでは、ユーザー名/パスワード、ホスト名/ポートなど、AEM インスタンスにプロジェクトをデプロイする際に重要なグローバルプロパティを定義します。
これらのプロパティは、ローカルの AEM インスタンスにデプロイするために設定されています。これは、開発者が行う最も一般的なビルドです。オーサーインスタンスにデプロイするためのプロパティおよびパブリッシュインスタンスにデプロイするためのプロパティが存在することに注意してください。ここでは AEM インスタンスを認証するための認証も設定されます。デフォルトの admin:admin
資格情報が使用されます。
これらのプロパティは、より上位の環境にデプロイされる際には上書きされるよう設定されています。そうすることで、POM ファイルを変更する必要がなく、aem.host
および sling.password
などの変数をコマンドライン引数で上書きできます。
mvn -PautoInstallPackage clean install -Daem.host=production.hostname -Dsling.password=productionpasswd
モジュール構造 module-structure
親 POM の <modules>
セクションは、プロジェクトが構築するモジュールを定義します。デフォルトでは、プロジェクトは定義済みの標準モジュールをビルドします。プロジェクトの拡大に合わせて、いつでもモジュールを追加できます。
依存関係 dependencies
親 POM の <dependencyManagement>
セクションは、プロジェクトで使用される API のすべての依存関係とバージョンを定義します。バージョンは親 POM で管理する必要があります。サブモジュールには、バージョン情報を含めないでください。
Uber-Jar uber-jar
主要な依存関係の 1 つが AEM Java API Jar です。これは、AEM のバージョンに対応する 1 つの依存関係エントリだけで、すべての AEM API を組み込みます。
X
は最新のサービスパックです)。コアコンポーネント core-components
もちろん、アーキタイプはコアコンポーネントを利用します。そのため、すべてのデプロイメントでコアコンポーネントを使用するには、それらを Maven プロジェクトの一部に組み込むことが推奨されます。
core.wcm.components.examples は、コアコンポーネントの例を示す一連のサンプルページです。ベストプラクティスとして、実稼動用にプロジェクトをデプロイする場合は、この依存関係とサブパッケージのインクルージョンを削除する必要があります。
テスト testing
プロジェクトには 3 つのレベルのテストが含まれており、テストのタイプが異なるので、実行方法も場所も異なります。