Adobe Content Package Maven Plugin adobe-content-package-maven-plugin
パッケージデプロイメントおよび管理タスクを Maven プロジェクトに組み込むには、Adobe Content Package Maven プラグインを使用します。
構築したパッケージは Adobe Content Package Maven プラグインによって AEM にデプロイされ、通常 AEM Package Manager: を使って実行するタスクの自動化を可能にします。
- ファイルシステム内のファイルから新しいパッケージを作成する。
- AEM にパッケージをインストールまたはアンインストールする。
- AEM で定義済みのパッケージをビルドする。
- AEM にインストールされているパッケージのリストを取得する。
- AEM からパッケージを削除する。
このドキュメントでは、Maven を使用してこれらのタスクを管理する方法について詳しく説明します。また一方、AEM プロジェクトとそのパッケージの構造を理解することも重要です。
content-package-maven-plugin
は、リリース 1.0.2 以降、パッケージ化をサポートしなくなりました。- この記事では、構築済みパッケージの AEM への デプロイメント を、Adobe Content Package Maven プラグインで実行する方法について説明します。
パッケージと AEM プロジェクト構造 aem-project-structure
AEM as a Cloud Service は、最新の AEM プロジェクトアーキタイプによって実装された、パッケージ管理とプロジェクト構造に関する最新のベストプラクティスに従っています。
Content Package Maven Plugin の入手 obtaining-the-content-package-maven-plugin
このプラグインは Maven Central リポジトリーから入手できます。
Content Package Maven Plugin のゴールとパラメーター
Content Package Maven Plugin を使用するには、POM ファイルのビルド要素内に次のプラグイン要素を追加します。
<plugin>
<groupId>com.day.jcr.vault</groupId>
<artifactId>content-package-maven-plugin</artifactId>
<version>1.0.4</version>
<configuration>
<!-- parameters and values common to all goals, as required -->
</configuration>
</plugin>
Maven がプラグインをダウンロードできるようにするには、このページの Content Package Maven Plugin の取得の節で提供されているプロファイルを使用します。
Content Package Maven Plugin の目標 goals-of-the-content-package-maven-plugin
Content Package プラグインが提供する目標と目標のパラメーターについて詳しくは、次の節で説明します。共通パラメーターの節で説明したパラメーターは、ほとんどの目標に使用できます。1 つの目標に適用されるパラメーターについて詳しくは、その目標の節で説明します。
プラグインプレフィックス plugin-prefix
プラグインプレフィックスは content-package
です。次の例に示すように、コマンドラインからゴールを実行するには、このプレフィックスを使用します。
mvn content-package:build
パラメータープレフィックス parameter-prefix
特に指定がない限り、プラグインのゴールおよびパラメーターでは、次の例に示すように vault
プレフィックスを使用します。
mvn content-package:install -Dvault.targetURL="https://192.168.1.100:4502/crx/packmgr/service.jsp"
プロキシ proxies
AEM にプロキシを使用するゴールでは、Maven 設定で最初に見つかった有効なプロキシ設定を使用します。プロキシ設定が見つからない場合、プロキシは使用されません。共通パラメーターの節の useProxy
パラメーターを参照してください。
共通パラメーター common-parameters
次の表に示すパラメーターは、すべてのゴールに共通です(ゴール 列に記載されている場合を除く)。
failOnError
boolean
false
true
を指定すると、エラーの発生時にビルドが失敗します。値 false
を指定すると、ビルドの際にエラーが無視されます。package
を除くすべてのゴールname
String
build
:はい、install
:いいえ、rm
:はいbuild
:デフォルト値なし、install
:Maven プロジェクトの artifactId
プロパティの値ls
を除くすべてのゴールpassword
String
admin
package
を除くすべてのゴールserverId
String
package
を除くすべてのゴールtargetURL
String
http://localhost:4502/crx/packmgr/service.jsp
package
を除くすべてのゴールtimeout
int
5
package
を除くすべてのゴールuseProxy
boolean
true
true
の値は、Maven は最初に見つかったアクティブなプロキシ設定を使用してパッケージマネージャーへのリクエストをプロキシします。package
を除くすべてのゴールuserId
String
admin
package
を除くすべてのゴールverbose
boolean
false
package
を除くすべてのゴールbuild build
AEM インスタンスで既に定義されているコンテンツパッケージをビルドします。
パラメーター parameters
build ゴールのすべてのパラメーターについては、共通パラメーターを参照してください。
install install
リポジトリー内のパッケージをインストールします。このゴールの実行に Maven プロジェクトは不要です。このゴールは Maven のビルドライフサイクルの install
フェーズにバインドされます。
パラメーター parameters-1
以下のパラメーターに加えて、 共通パラメーター の説明も参照してください。
artifact
String
artifactId
プロパティの値groupId:artifactId:version[:packaging]
形式の文字列artifactId
String
groupId
String
groupId
install
boolean
true
localRepository
org.apache.maven.artifact.repository.ArtifactRepository
localRepository
システム変数の値packageFile
java.io.File
packaging
String
zip
pomRemoteRepositories
java.util.List
remoteArtifactRepositories
プロパティの値project
org.apache.maven.project.MavenProject
repositoryId
(POM)、repoID
(コマンドライン)String
temp
repositoryUrl
(POM)、repoURL
(コマンドライン)String
ls ls
パッケージマネージャーにデプロイされているパッケージを一覧表示します。
パラメーター parameters-2
ls ゴールのすべてのパラメーターについては、共通パラメーターを参照してください。
rm rm
パッケージマネージャーからパッケージを削除します。
パラメーター parameters-3
rm ゴールのすべてのパラメーターについては、共通パラメーターを参照してください。
uninstall uninstall
パッケージをアンインストールします。パッケージは、アンインストールされた状態でサーバーに残ります。
パラメーター parameters-4
uninstall ゴールのすべてのパラメーターについては、共通パラメーターを参照してください。
package package
コンテンツパッケージを作成します。package ゴールのデフォルト設定には、コンパイルしたファイルを保存するディレクトリの内容が含まれます。package ゴールを実行するには、compile build フェーズを完了しておく必要があります。package ゴールは Maven のビルドライフサイクルの package フェーズにバインドされます。
パラメーター parameters-5
以下のパラメーターに加えて、 共通パラメーター の name
パラメーターの説明も参照してください。
archive
org.apache.maven.archiver.MavenArchiveConfiguration
builtContentDirectory
java.io.File
dependencies
java.util.List
embeddedTarget
java.lang.String
embeddeds
java.util.List
failOnMissingEmbed
boolean
false
true
を指定すると、埋め込みアーティファクトがプロジェクトの依存関係に見つからない場合にビルドが失敗します。値 false
を指定すると、ビルドの際にこのエラーが無視されます。filterSource
java.io.File
filters
com.day.jcr.vault.maven.pack.impl.DefaultWorkspaceFilter
filter.xml
ファイルにフィルターが追加されます。以下の フィルターの使用 の節を参照してください。finalName
java.lang.String
finalName
.zip
を除く)group
java.lang.String
groupID
groupId
(コンテンツパッケージのターゲットインストールパスに含まれます)outputDirectory
java.io.File
prefix
java.lang.String
project
org.apache.maven.project.MavenProject
properties
java.util.Map
properties.xml
ファイルに設定できる追加のプロパティを定義します。これらのプロパティで次の定義済みプロパティを上書きすることはできません。group
(group
パラメーターを使用して設定)、name
(name
パラメーターを使用して設定)、version
(version
パラメーターを使用して設定)、description
(プロジェクトの説明から設定)、groupId
(Maven プロジェクト記述子の groupId
)、artifactId
(Maven プロジェクト記述子の artifactId
)、dependencies
(dependencies
パラメーターを使用して設定)、createdBy
(システムプロパティ user.name
の値)、created
(現在のシステム時刻)、requiresRoot
(requiresRoot
パラメーターを使用して設定)、packagePath
(グループ名とパッケージ名から自動的に生成)requiresRoot
boolean
properties.xml
ファイルの requiresRoot
プロパティになります。subPackages
java.util.List
version
java.lang.String
workDirectory
java.io.File
フィルターの使用 using-filters
パッケージ内容を定義するには、フィルター要素を使用します。フィルターはパッケージの META-INF/vault/filter.xml
ファイルの workspaceFilter
要素に追加されます。
次に示すフィルターの例は、使用する XML 構造を示しています。
<filter>
<root>/apps/myapp</root>
<mode>merge</mode>
<includes>
<include>/apps/myapp/install/</include>
<include>/apps/myapp/components</include>
</includes>
<excludes>
<exclude>/apps/myapp/config/*</exclude>
</excludes>
</filter>
インポートモード import-mode
mode
要素は、パッケージが読み込まれる際にリポジトリー内の内容がどのような影響を受けるかを定義します。使用できる値は次のとおりです。
- merge: まだリポジトリーに含まれていないパッケージ内容が追加されます。パッケージとリポジトリーの両方に含まれている内容は変更されません。リポジトリーの内容が削除されることはありません。
- replace: リポジトリーに含まれていないパッケージ内容がリポジトリーに追加されます。リポジトリー内の内容が、パッケージ内の一致する内容に置き換えられます。パッケージ内に存在しない内容はリポジトリーから削除されます。
- update: リポジトリーに含まれていないパッケージ内容がリポジトリーに追加されます。リポジトリー内の内容が、パッケージ内の一致する内容に置き換えられます。
フィルターに mode
要素が含まれていない場合は、デフォルト値 replace
が使用されます。
help help
パラメーター parameters-6
detail
boolean
false
goal
String
indentSize
int
2
lineLength
int
80
パッケージへのサムネール画像またはプロパティファイルの追加 including-a-thumbnail-image-or-properties-file-in-the-package
デフォルトのパッケージ設定ファイルを置き換えて、パッケージのプロパティをカスタマイズします。例えば、パッケージマネージャーでパッケージを区別するためのサムネール画像を含めます。
ソースファイルはファイルシステム内のどこにあっても構いません。POM ファイルでは、ソースファイルを target/vault-work/META-INF
にコピーするように、パッケージに追加するビルドリソースを定義します。
次の POM コードでは、プロジェクトソースの META-INF
フォルダー内のファイルをパッケージに追加します。
<build>
<resources>
<!-- vault META-INF resources (thumbnail and so on) -->
<resource>
<directory>${basedir}/src/main/content/META-INF</directory>
<targetPath>../vault-work/META-INF</targetPath>
</resource>
</resources>
</build>
次の POM コードでは、1 つのサムネール画像だけをパッケージに追加します。サムネール画像の名前を thumbnail.png
と指定して、パッケージの META-INF/vault/definition
フォルダーに配置してください。この例では、ソースファイルはプロジェクトの /src/main/content/META-INF/vault/definition
フォルダーにあります。
<build>
<resources>
<!-- thumbnail only -->
<resource>
<directory>${basedir}/src/main/content/META-INF/vault/definition</directory>
<targetPath>../vault-work/META-INF/vault/definition</targetPath>
</resource>
</resources>
</build>
AEM プロジェクトアーキタイプを使用した AEM プロジェクトの生成 using-archetypes
最新の AEM プロジェクトアーキタイプでは、オンプレミス実装でも AMS 実装でも、ベストプラクティスに従ったパッケージ構造を実装しているので、すべての AEM プロジェクトにこのプロジェクトアーキタイプを使用することをお勧めします。