Adobe Experience Manager(AEM)は、AEM as a Cloud Service SDK のクイックスタート jar を使用してローカルで実行できます。これにより、開発者は、ソース管理にコミットして AEM as a Cloud Service 環境にデプロイする前に、カスタムコード、設定およびコンテンツをデプロイしてテストできます。
~
は、ユーザーのディレクトリの略記法として使用されます。Windows では、これは %HOMEPATH%
に相当します。
Experience Manager は Java アプリケーションなので、開発ツールをサポートするには Java SDK が必要です。
java -version
java --version
AEM as a Cloud Service SDK または AEM SDK には、AEM オーサーおよびパブリッシュを開発用にローカルで実行するために使用されるクイックスタート jar と、Dispatcher ツールの互換バージョンが含まれています。
aem-sdk-XXX.zip
ファイルを解凍しますローカル AEM オーサーサービスは、デジタルマーケターやコンテンツ作成者がコンテンツの作成と管理のために共有するローカルエクスペリエンスを開発者に提供します。AEM オーサーサービスは、オーサリングおよびプレビュー環境の両方として設計されており、それに対して機能開発のほとんどの検証を実行できるので、ローカル開発プロセスの重要な要素となっています。
~/aem-sdk/author
フォルダーを作成します
クイックスタート jar ファイルを ~/aem-sdk/author
にコピーし、名前を aem-author-p4502.jar
に変更します
コマンドラインから次のコマンドを実行して、ローカル AEM オーサーサービスを開始します。
java -jar aem-author-p4502.jar
admin
として指定します。任意の管理者パスワードを使用できますが、再設定の必要性を減らすために、ローカル開発にはデフォルトを使用することをお勧めします。ダブルクリックして、AEM as Cloud Service クイックスタート jar を起動することはできません。
Web ブラウザーで http://localhost:4502 のローカル AEM オーサーサービスにアクセスします。
Windows:
$ mkdir -p c:\Users\<My User>\aem-sdk\author
$ copy aem-sdk-Quickstart-XXX.jar c:\Users\<My User>\aem-sdk\author\aem-author-p4502.jar
$ cd c:\Users\<My User>\aem-sdk\author
$ java -jar aem-author-p4502.jar
macOS/Linux:
$ mkdir -p ~/aem-sdk/author
$ cp aem-sdk-Quickstart-XXX.jar ~/aem-sdk/author/aem-author-p4502.jar
$ cd ~/aem-sdk/author
$ java -jar aem-author-p4502.jar
ローカル AEM パブリッシュサービスは、AEM でホストされている web サイトの参照など、AEM のローカルエンドユーザーが持つローカルエクスペリエンスを開発者に提供します。ローカル AEM パブリッシュサービスは、AEM SDK の Dispatcher ツールと統合され、開発者がスモークテストを行い、最終的なエンドユーザー向けエクスペリエンスを微調整できるので重要です。
~/aem-sdk/publish
フォルダーを作成します
クイックスタート jar ファイルを ~/aem-sdk/publish
にコピーし、名前を aem-publish-p4503.jar
に変更します
コマンドラインから次のコマンドを実行して、ローカル AEM パブリッシュサービスを開始します。
java -jar aem-publish-p4503.jar
admin
として指定します。任意の管理者パスワードを使用できますが、再設定の必要性を減らすために、ローカル開発にはデフォルトを使用することをお勧めします。AEM as Cloud Service クイックスタート Jar をダブルクリックしても、起動できません。
Web ブラウザーで http://localhost:4503 のローカル AEM パブリッシュサービスにアクセスします。
Windows:
$ mkdir -p c:\Users\<My User>\aem-sdk\publish
$ copy aem-sdk-Quickstart-XXX.jar c:\Users\<My User>\aem-sdk\publish\aem-publish-p4503.jar
$ cd c:\Users\<My User>\aem-sdk\publish
$ java -jar aem-publish-p4503.jar
macOS/Linux:
$ mkdir -p ~/aem-sdk/publish
$ cp aem-sdk-Quickstart-XXX.jar ~/aem-sdk/publish/aem-publish-p4503.jar
$ cd ~/aem-sdk/publish
$ java -jar aem-publish-p4503.jar
ローカルの AEM ランタイムは、プレリリース モードで開始できるため、開発者は AEM as a Cloud Service の次のリリースの機能に対してビルドすることができます。プレリリースは、ローカル AEM ランタイムの最初の起動時に -r prerelease
引数を渡すことにより有効になります。これは、ローカルの AEM オーサーサービスと AEM パブリッシュサービスの両方で使用できます。
# For AEM Author service in prerelease mode
$ java -jar aem-author-p4502.jar -r prerelease
# For AEM Publish service in prerelease mode
$ java -jar aem-publish-p4503.jar -r prerelease
真の Cloud Service 環境では、コンテンツは、Sling Content Distribution と Adobe パイプラインを使用して、オーサーサービスからパブリッシュサービスに配信されます。この Adobe パイプライン は、クラウド内環境でのみ使用できる独立したマイクロサービスです。
開発中は、ローカルのオーサーサービスとパブリッシュサービスを使用して、コンテンツの配布をシミュレートする方が望ましい場合があります。 これは、従来のレプリケーションエージェントを有効にすることで実現できます。
レプリケーションエージェントは、ローカルのクイックスタート JAR でのみ使用することができ、コンテンツ配布のシミュレーションのみを提供します。
オーサーサービスににログインし、 http://localhost:4502/etc/replication/agents.author.html に移動します。
デフォルトエージェント(公開)をクリックして、デフォルトのレプリケーションエージェントを開きます。
「編集」をクリックしてエージェントの設定を開きます。
「設定」タブで、次のフィールドを更新します。
「トランスポート」タブで、次のフィールドを更新します。
http://localhost:4503/bin/receive?sling:authRequestLogin=1
admin
admin
「OK」をクリックして設定を保存し、デフォルト レプリケーションエージェントを有効にします。
これで、オーサーサービスのコンテンツに変更を加えて、変更内容をパブリッシュサービスに公開することができます。
クイックスタート JAR の名前 aem-<tier>_<environment>-p<port number>.jar
が、起動方法を指定します。AEM を特定の層、オーサーやパブリッシュで開始した後は、別の層に変更することができません。 変更を行うには、最初の実行時に生成された crx-Quickstart
フォルダーを削除し、クイックスタート JAR を再度実行する必要があります。環境とポートは変更できますが、ローカルの AEM インスタンスの停止/開始が必要です。
環境、dev
、stage
および prod
の変更は、環境固有の設定が AEM によって正しく定義および解決されていることを、開発者が確認するのに役立ちます。ローカル開発は、主にデフォルトの dev
環境実行モードに対して行うことをお勧めします。
使用できる配列は次のとおりです。
クイックスタート JAR のファイル名 | モードの説明 |
---|---|
aem-author-p4502.jar |
ポート 4502 での開発実行モードのオーサーとして |
aem-author_dev-p4502.jar |
ポート 4502 での開発実行モードのオーサーとして(aem-author-p4502.jar と同じ) |
aem-author_stage-p4502.jar |
ポート 4502 でのステージング実行モードのオーサーとして |
aem-author_prod-p4502.jar |
ポート 4502 での実稼動実行モードのオーサーとして |
aem-publish-p4503.jar |
ポート 4503 での開発実行モードのパブリッシュとして |
aem-publish_dev-p4503.jar |
ポート 4503 での開発実行モードのパブリッシュとして(aem-publish-p4503.jar と同じ) |
aem-publish_stage-p4503.jar |
ポート 4503 でのステージング実行モードのパブリッシュとして |
aem-publish_prod-p4503.jar |
ポート 4503 での実稼動実行モードのパブリッシュとして |
ポート番号は、ローカル開発マシンで使用可能な任意のポートにすることができますが、慣例により、次のようになります。
ポートの対応を変更するには、AEM SDK 設定の調整が必要になる場合があります。
ローカルの AEM ランタイム(AEM オーサーサービスまたはパブリッシュサービス)を停止するには、AEM ランタイムの開始に使用したコマンドラインウィンドウを開き、Ctrl-C
をタップします。AEM がシャットダウンするまで待ちます。シャットダウンプロセスが完了すると、コマンドラインプロンプトが表示されます。
AEM as a Cloud Service「機能リリース」のリリース周期、毎月最終木曜日以降または直後にAEM SDKを更新します。
クイックスタート Jar を新しいバージョンにアップグレードするには、ローカルの開発環境全体を置き換える必要があります。その結果、ローカル AEM リポジトリ内のコード、設定およびコンテンツはすべて失われます。破棄してはいけないコード、設定またはコンテンツを Git に安全にコミットするか、ローカルの AEM インスタンスから AEM パッケージとして書き出すようにします。
AEM SDK をアップグレードすると、新しいリポジトリを含む新しい AEM ランタイムが効果的に作成されます。つまり、以前の AEM SDK のリポジトリに対して実行された変更は失われます。AEM SDK のアップグレード間にコンテンツを持続させるための戦略を次に示します。個別に、または組み合わせて使用できます。
includepaths
ディレクティブを使用して、以前の AEM SDK リポジトリから新しい AEM SDK リポジトリにコンテンツをコピーします。AEM SDK のアップグレードの間に上記の方法を使用してコードを維持する場合、開発のアンチパターンを示すことに注意してください。使い捨て以外のコードは、開発 IDE から派生し、デプロイメントを介して AEM SDK に送られる必要があります。
クイックスタート Jar をダブルクリックして起動すると、エラーモーダルが表示され、AEM がローカルで起動できなくなります。
これは、AEM as a Cloud Service のクイックスタート Jar が、クイックスタート Jar をダブルクリックして AEM をローカルに起動することをサポートしていないためです。代わりに、コマンドラインから Jar ファイルを実行する必要があります。
AEM オーサーサービスを起動するには、cd
を使用してクイックスタート Jar のあるディレクトリへと移動し、コマンドを実行します。
$ java -jar aem-author-p4502.jar
または、AEM パブリッシュサービスを起動するには、cd
でクイックスタート Jar があるディレクトリに移動して、コマンドを実行します。
$ java -jar aem-publish-p4503.jar
クイックスタート Jar をコマンドラインから起動すると、処理がすぐに中断し、AEM サービスが起動せず、次のエラーが発生します。
➜ ~/aem-sdk/author: java -jar aem-author-p4502.jar
Loading quickstart properties: default
Loading quickstart properties: instance
java.lang.Exception: Quickstart requires a Java Specification 11 VM, but your VM (Java HotSpot(TM) 64-Bit Server VM / Oracle Corporation) reports java.specification.version=1.8
at com.adobe.granite.quickstart.base.impl.Main.checkEnvironment(Main.java:1046)
at com.adobe.granite.quickstart.base.impl.Main.<init>(Main.java:646)
at com.adobe.granite.quickstart.base.impl.Main.main(Main.java:981)
Quickstart: aborting
これは、AEM as a Cloud Service には Java SDK 11 が必要で、異なるバージョン(おそらく Java 8)を実行しているためです。この問題を解決するには、Oracle Java SDK 11 をダウンロードしてインストールします。
Java SDK 11 をインストールしたら、コマンドラインから次のコマンドを実行して、その SDK がアクティブなバージョンであることを確認します。
Java 11 SDK がインストールされたら、コマンドラインからコマンドを実行して、その SDK がアクティブなバージョンであることを確認します。
java -version
java --version