Show Menu
トピック×

Creating an AEM Application Project

ウィザードを使用した AEM アプリケーションプロジェクトの作成

新規ユーザーが作業に着手しやすくなるように、Cloud Manager では、最小限の AEM プロジェクトを出発点として作成できるようになりました。このプロセスは、 AEM プロジェクトアーキタイプ​ に基づいておこなわれます。
Cloud Manager で AEM アプリケーションプロジェクトを作成するには、次の手順に従います。
  1. Cloud Manager にログインし、基本的なプログラム設定が完了すると、リポジトリが空の場合、 概要 ​画面に特別なコールトゥアクションカードが表示されます。
  2. 「作成 」をクリッ クして、分岐とプロジェクトの作成画面に移動します ​。
  3. プロジ ェクトの作成中タイルが 、プログラムの概要 画面に表示されます
  4. プログラムの作成が完了すると、「 Add Environment 」タイルが「 Program Overview 」ページに表示されます。
    環境を追加 または管理する方法については 、「環境の管理」を参照してください。

プロジェクトの設定

プロジェクト設定の詳細を変更する

Cloud Manager で正常にビルドおよびデプロイされるために、既存の AEM プロジェクトはいくつかの基本ルールに従う必要があります。
  • プロジェクトは Apache Maven を使用してビルドする必要があります。
  • Git リポジトリのルートには pom.xml ファイルが必要です。この pom.xml ファイルでは、必要な数のサブモジュールを参照できます(それらのサブモジュールでさらに他のサブモジュールなどを参照している場合もあります)。
  • 追加の Maven アーティファクトリポジトリへの参照を pom.xml ファイルに追加できます。ただし、パスワードで保護またはネットワークで保護されたアーティファクトリポジトリへのアクセスはサポートされていません。
  • デプロイ可能なコンテンツパッケージは、 target という名前のディレクトリに含まれているコンテンツパッケージ zip ファイルをスキャンすることで検出されます。任意の数のサブモジュールでコンテンツパッケージを作成することもできます。
  • デプロイ可能な Dispatcher アーティファクトは、 conf および conf.d というディレクトリを持つ zip ファイル(これも target という名前のディレクトリに含まれる)をスキャンすることで検出されます
  • 複数のコンテンツパッケージがある場合、パッケージデプロイメントの順序は保証されません。特定の順序が必要な場合は、コンテンツパッケージの依存関係を使用して順序を定義できます。パッケージはデプロイメントから スキップ できます。

ビルド環境の詳細

Cloud Manager では、専用のビルド環境を使用して、コードのビルドおよびテストをおこないます。この環境には次のような特性があります。
  • ビルド環境は Linux ベースで、Ubuntu 18.04 から派生しています。
  • Apache Maven 3.6.0 がインストールされています。
  • インストールされている Java のバージョンは Oracle JDK 8u202 です。
  • 必要な追加のシステムパッケージが、次のようにいくつかインストールされています。
    • bzip2
    • unzip
    • libpng
    • imagemagick
    • graphicsmagick
  • 後述されている通り 、これ以外にも、ビルド時にパッケージがインストールされる場合があります。
  • すべてのビルドは、Pristine 環境で実行されます。ビルドコンテナは実行から次回の実行までの間、状態を保持しません。
  • Maven は常に mvn --batch-mode clean org.jacoco:jacoco-maven-plugin:prepare-agent package というコマンドで実行されます。
  • Maven は、settings.xml ファイルを使用してシステムレベルで設定されます。このファイルには、アドビの公開​ アーティファクト ​リポジトリが自動的に含まれています(詳しくは、 アドビの公開 Maven リポジトリ を参照してください)。

環境変数

標準環境変数

場合によっては、プログラムやパイプラインに関する情報に基づいてビルドプロセスを変更する必要があります。
例えば、gulp のようなツールを使用して、ビルド時の JavaScript の縮小がおこなわれている場合、ステージと実稼働用とは異なる、開発環境用のビルド時の縮小レベルを使用したくなる場合があります。
これをサポートするために、Cloud Manager は、これらの標準環境変数を各実行のビルドコンテナに追加します。
変数名
定義
CM_BUILD
常に「true」に設定
ブランチ
実行用に設定されたブランチ
CM_PIPELINE_ID
数値パイプライン識別子
CM_PIPELINE_NAME
パイプライン名
CM_PROGRAM_ID
数値プログラム識別子
CM_PROGRAM_NAME
プログラム名
ARTIFACTS_VERSION
ステージまたは実稼働パイプラインの場合、Cloud Manager で生成された合成バージョン
CM_AEM_PRODUCT_VERSION
リリース名

カスタム環境変数

場合によっては、顧客のビルドプロセスが、Git リポジトリに格納するのに適さない特定の設定変数に依存していることがあります。Cloud Managerでは、これらの変数を顧客ごとにアドビの担当者が設定できます。 これらの変数は、安全な格納先に保存され、特定の顧客のビルドコンテナにのみ表示されます。この機能を使用する場合は、アドビの担当者に変数を設定する必要があります。
設定が完了すると、これらの変数は環境変数として使用可能になります。これらの変数を Maven プロパティとして使用するには、pom.xml ファイルを参照します(変数は、前述のようにプロファイル内にあるはずです)。
        <profile>
            <id>cmBuild</id>
            <activation>
                  <property>
                        <name>env.CM_BUILD</name>
                  </property>
            </activation>
            <properties>
                  <my.custom.property>${env.MY_CUSTOM_PROPERTY}</my.custom.property>  
            </properties>
        </profile>

環境変数名に使用できるのは、英数字と下線(_)のみです。慣例では、名前はすべて大文字である必要があります。

Cloud Manager での Maven プロファイルのアクティブ化

ごく一部のケースでは、開発用ワークステーションで実行する場合とは異なり、Cloud Manager 内で実行する場合にはビルドプロセスを少し変える必要が出ることもあります。この場合は、 Maven プロファイル を使用して、Cloud Manager を含む環境ごとのビルドの違いを定義できます。
Cloud Manager ビルド環境内での Maven プロファイルのアクティブ化は、前述の CM_BUILD という名前の環境変数があるかどうかを調べておこなう必要があります。逆に、Cloud Manager ビルド環境以外でのみ使用するためのプロファイルは、この変数がないかどうかを調べることでアクティブ化する必要があります。
例えば、Cloud Manager 内でビルドが実行されたときにのみ簡単なメッセージを出力する場合は、次のようにします。
        <profile>
            <id>cmBuild</id>
            <activation>
                  <property>
                        <name>env.CM_BUILD</name>
                  </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                            <execution>
                                <phase>initialize</phase>
                                <configuration>
                                    <target>
                                        <echo>I'm running inside Cloud Manager!</echo>
                                    </target>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

開発用ワークステーションでこのプロファイルをテストするには、( -PcmBuild を付けた)コマンドラインまたは統合開発環境(IDE)でプロファイルを有効にします。
Cloud Manager 以外でビルドが実行されたときにのみ簡単なメッセージを出力する場合は、次のようにします。
        <profile>
            <id>notCMBuild</id>
            <activation>
                  <property>
                        <name>!env.CM_BUILD</name>
                  </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                            <execution>
                                <phase>initialize</phase>
                                <configuration>
                                    <target>
                                        <echo>I'm running outside Cloud Manager!</echo>
                                    </target>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

追加のシステムパッケージのインストール

すべての機能を実装するにあたり、一部のビルドでは追加のシステムパッケージをインストールする必要があります。例えば、Python や Ruby のスクリプトが呼び出されるビルドでは、当然、適切な言語インタープリターをインストールすることが必要となります。これをおこなうには、 exec-maven-plugin を呼び出して、APT を起動します。この実行は通常、Cloud Manager 専用の Maven プロファイルにラップされます。例えば、Python は次のようにインストールします:
        <profile>
            <id>install-python</id>
            <activation>
                <property>
                        <name>env.CM_BUILD</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.6.0</version>
                        <executions>
                            <execution>
                                <id>apt-get-update</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>apt-get</executable>
                                    <arguments>
                                        <argument>update</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                            <execution>
                                <id>install-python</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>apt-get</executable>
                                    <arguments>
                                        <argument>install</argument>
                                        <argument>-y</argument>
                                        <argument>--no-install-recommends</argument>
                                        <argument>python</argument>
                                    </arguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

同じ方法を、RubyGems の gem や Python パッケージの pip など、特定の言語用のパッケージのインストールにも使用できます。
この方法でシステムパッケージをインストールしても、Adobe Experience Manager の実行に使用されているランタイム環境にはインストール​ されません 。AEM環境にシステムパッケージをインストールする必要がある場合は、アドビの担当者にお問い合わせください。

コンテンツパッケージのスキップ

Cloud Manager では、ビルドは、任意の数のコンテンツパッケージを作成できます。様々な理由により、コンテンツパッケージを作成してもデプロイしないことが望ましい場合があります。例えば、テストのみに使用するコンテンツパッケージを作成する場合や、ビルドプロセスの別のステップで(つまり、別のパッケージのサブパッケージとして)再パッケージ化される場合に便利です。
これらのシナリオに対応するために、Cloud Manager は、ビルドコンテンツパッケージのプロパティで、 cloudManagerTarget という名前のプロパティを探します。このプロパティが none に設定されている場合、パッケージはスキップされ、デプロイされません。このプロパティを設定する仕組みは、ビルドがコンテンツパッケージを作成する方法によって異なります。例えば、以下のように filevault-maven-plugin でプラグインを設定する場合、
        <plugin>
            <groupId>org.apache.jackrabbit</groupId>
            <artifactId>filevault-package-maven-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <properties>
                    <cloudManagerTarget>none</cloudManagerTarget>
                </properties>
        <!-- other configuration -->
            </configuration>
        </plugin>

content-package-maven-plugin では、同じようになります。
        <plugin>
            <groupId>com.day.jcr.vault</groupId>
            <artifactId>content-package-maven-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <properties>
                    <cloudManagerTarget>none</cloudManagerTarget>
                </properties>
        <!-- other configuration -->
            </configuration>
        </plugin>