現在表示中:

パッケージ管理タスクを Maven プロジェクトに組み込むには、Content Package Maven Plugin を使用します。このプラグインのゴールとパラメーターにより、通常はパッケージマネージャーページまたは FileVault コマンドラインを使用して実行する多くのタスクを自動化できます。

  • ファイルシステム内のファイルから新しいパッケージを作成する。
  • CRX または CQ サーバーのパッケージをインストールおよびアンインストールする。
  • サーバーで定義済みのパッケージをビルドする。
  • サーバーにインストールされたパッケージのリストを取得する。
  • サーバーからパッケージを削除する。

POM ファイルへの Content Package Maven Plugin の追加

Content Package Maven Plugin を使用するには、POM ファイルのビルド要素内に次のプラグイン要素を追加します。

<plugin>
	<groupId>com.day.jcr.vault</groupId>
	<artifactId>content-package-maven-plugin</artifactId>
	<version>0.0.20</version>
	<configuration>
	      <!-- parameters and values common to all goals, as required --> 
	</configuration>
</plugin>

Maven でプラグインをダウンロードできるようにするには、このページの Content Package Maven Plugin の取得で提供されるプロファイルを使用します。

Content Package Maven Plugin のゴール

Content Package Plugin に用意されているゴールおよびゴールパラメーターについては、以降の節で説明します。共通パラメーターの節に示すパラメーターはほとんどのゴールに使用できます。1 つのゴールに適用するパラメーターについては、そのゴールの節を参照してください。

プラグインプレフィックス

プラグインプレフィックスは content-package です。次の例に示すように、コマンドラインからゴールを実行するには、このプレフィックスを使用します。

mvn content-package:build 

パラメータープレフィックス

特に指定がない限り、プラグインのゴールおよびパラメーターでは、次の例に示すように vault プレフィックスを使用します。

mvn content-package:install -Dvault.targetURL="http://192.168.1.100:4502/crx/packmgr/service.jsp"

プロキシ

CRX または CQ サーバーにプロキシを使用するゴールでは、Maven 設定で見つかった有効な最初のプロキシ設定を使用します。プロキシ設定が見つからない場合、プロキシは使用されません。共通設定の節の useProxy パラメーターを参照してください。

共通パラメーター

次の表に示すパラメーターは、すべてのゴールに共通のパラメーターです(「ゴール」列に記載されている場合を除く)。

名前 種類 必須 デフォルト値 説明 ゴール
failOnError boolean No false true を指定すると、エラーの発生時にビルドが失敗します。値 false を指定すると、ビルドの際にエラーが無視されます。 package を除くすべてのゴール
name String build:Yes
install:No
rm:Yes
build:デフォルト値なし
install:Maven プロジェクトの artifactId プロパティの値
処理を行うパッケージの名前。 ls を除くすべてのゴール
password String Yes admin CRX サーバーでの認証に使用するパスワード。 package を除くすべてのゴール
serverId String No   認証用のユーザー名とパスワードの取得元のサーバー ID。 package を除くすべてのゴール
targetURL String Yes http://localhost:4502/
crx/packmgr/
service.jsp
CRX パッケージマネージャーの HTTP サービス API の URL。 package を除くすべてのゴール
timeout int No 5 パッケージマネージャーサービスとの通信の接続タイムアウト(秒)。 package を除くすべてのゴール
useProxy boolean No true Maven 設定ファイルのプロキシ設定を使用するかどうかを指定します。値 true を指定すると、見つかった最初のアクティブなプロキシ設定を使用してパッケージマネージャーに要求をプロキシします。値 false を指定すると、プロキシは使用されません。 package を除くすべてのゴール
userId String Yes admin CRX サーバーで認証するユーザー名。 package を除くすべてのゴール
verbose boolean No false 詳細ログを有効または無効にします。値 true を指定すると、詳細ログが有効になります。 package を除くすべてのゴール

build

CRX または CQ5 サーバーで定義済みのコンテンツパッケージをビルドします。

注意:

Maven プロジェクト内でこのゴールを実行する必要はありません。

パラメーター

build ゴール用のすべてのパラメーターについては、共通パラメーターを参照してください。

次の例では、IP アドレスが 10.36.79.223 の CQ サーバーにインストールする workflow-mbean パッケージをビルドします。このゴールは次のコマンドを使用して実行されます。

mvn content-package:build

次の POM ファイルはコマンドラインツールの現在のディレクトリにあります。この POM では、パッケージ名およびパッケージサービスの URL を指定します。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
	    <plugin>
		<groupId>com.day.jcr.vault</groupId>
		<artifactId>content-package-maven-plugin</artifactId>
		<version>0.0.20</version>
		<configuration>
			<name>workflow-mbean</name>
			<failOnError>true</failOnError>
			<targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	    </plugin>
	</plugins>
    </build>
</project>

INSTALL

CRX リポジトリにパッケージをインストールします。このゴールの実行に Maven プロジェクトは不要です。このゴールは Maven のビルドライフサイクルの install フェーズにバインドされます。

パラメーター

以下のパラメーターに加えて、共通パラメーターの説明を参照してください。

名前 種類 必須 デフォルト値 説明
artifact String No Maven プロジェクトの artifactId プロパティの値 groupId:artifactId:version[:packaging] 形式の文字列
artifactId String No   インストールするアーティファクトの ID
groupId String No   インストールするアーティファクトのグループ ID
インストール boolean No true アップロード時にパッケージを自動的に解凍するかどうかを指定します。値 true を指定するとパッケージが解凍され、false を指定するとパッケージは解凍されません。
localRepository org.apache.maven.
artifact. repository.
ArtifactRepository
No localRepository システム変数の値 ローカルの Maven リポジトリ。プラグイン設定を使用してこのパラメーターを設定することはできません。システムプロパティが常に使用されます。
packageFile java.io.File No Maven プロジェクト用に定義されるプライマリアーティファクト インストールするパッケージファイルの名前
packaging String No zip インストールするアーティファクトのパッケージ化のタイプ
pomRemoteRepositories java.util.List Yes Maven プロジェクト用に定義される remoteAtifactRepositories プロパティの値 プラグイン設定を使用してこの値を設定することはできません。この値はプロジェクトで指定する必要があります。
project org.apache.maven.
project.MavenProject
Yes プラグインが設定されるプロジェクト Maven プロジェクト。このプロジェクトはプラグイン設定を格納するので、暗黙的なプロジェクトです。
repositoryId(POM)
repoID(コマンドライン)
String No temp アーティファクトの取得元のリポジトリの ID。POM では repositoryID を使用します。コマンドラインでは repoID を使用します。
repositoryUrl(POM)
repoURL(コマンドライン)
String No   アーティファクトの取得元のリポジトリの URL。POM では repositoryURL を使用します。コマンドラインでは repoURL を使用します。
version String No   インストールするアーティファクトのバージョン

次の例では、workflow-mbean OSGi バンドルを格納するパッケージを作成して(build ゴールの例を参照)インストールします。install ゴールは package install フェーズにバインドされるので、次のコマンドで install ゴールを実行します。

mvn install
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.20</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

ls

パッケージマネージャーにデプロイされるパッケージを一覧表示します。

パラメーター

ls ゴールのすべてのパラメーターについては、共通パラメーターを参照してください。

次の例では、IP アドレスが 10.36.79.223 の CQ サーバーにインストールするパッケージを一覧表示します。このゴールは次のコマンドを使用して実行されます。

mvn content-package:ls

次の POM ファイルはコマンドラインツールの現在のディレクトリにあります。この POM では、パッケージサービスの URL を指定します。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
	    <plugin>
		<groupId>com.day.jcr.vault</groupId>
		<artifactId>content-package-maven-plugin</artifactId>
		<version>0.0.20</version>
		<configuration>
		    <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	     </plugin>
	  </plugins>
     </build>
</project>

rm

パッケージマネージャーからパッケージを削除します。

パラメーター

rm ゴールのすべてのパラメーターについては、共通パラメーターを参照してください。

次の例では、IP アドレスが 10.36.79.223 の CQ サーバーにインストールする workflow-mbean パッケージを削除します。このゴールは次のコマンドを使用して実行されます。

mvn content-package:rm

次の POM ファイルはコマンドラインツールの現在のディレクトリにあります。この POM では、パッケージサービスの URL およびパッケージの名前を指定します。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
	    <plugin>
		<groupId>com.day.jcr.vault</groupId>
		<artifactId>content-package-maven-plugin</artifactId>
		<version>0.0.20</version>
		<configuration>
                    <name>workflow-mbean</name>
		    <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	     </plugin>
	  </plugins>
     </build>
</project>

UNINSTALL

パッケージをアンインストールします。このパッケージは、アンインストールされた状態でサーバーに残ります。

パラメーター

uninstall ゴールのすべてのパラメーターについては、共通パラメーターを参照してください。

次の例では、IP アドレスが 10.36.79.223 の CQ サーバーにインストールする workflow-mbean パッケージをアンインストールします。このゴールは次のコマンドを使用して実行されます。

mvn content-package:uninstall

次の POM ファイルはコマンドラインツールの現在のディレクトリにあります。この POM では、パッケージ名およびパッケージサービスの URL を指定します。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>
    <build>
        <plugins>
	    <plugin>
		<groupId>com.day.jcr.vault</groupId>
		<artifactId>content-package-maven-plugin</artifactId>
		<version>0.0.20</version>
		<configuration>
			<name>workflow-mbean</name>
			<failOnError>true</failOnError>
			<targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	    </plugin>
	</plugins>
    </build>
</project>

package

コンテンツパッケージを作成します。package ゴールのデフォルト設定には、コンパイルしたファイルを保存するディレクトリのコンテンツが含まれます。package ゴールを実行するには、compile build フェーズを完了しておく必要があります。package ゴールは Maven のビルドライフサイクルの package フェーズにバインドされます。

パラメーター

以下のパラメーターに加えて、共通パラメーターname パラメーターの説明を参照してください。

名前 種類 必須 デフォルト値 説明
archive org.apache.maven.
archiver.
MavenArchiveConfiguration
No 使用するアーカイブ設定。Maven Archiver のドキュメントを参照してください。
builtContentDirectory java.io.File Yes Maven ビルドの出力ディレクトリの値 パッケージに含めるコンテンツを格納するディレクトリ
dependencies java.util.List No
embeddedTarget java.lang.String No
embeddeds java.util.List No
failOnMissingEmbed boolean Yes false 値 true を指定すると、埋め込みアーティファクトがプロジェクトの依存関係に見つからない場合にビルドが失敗します。値 false を指定すると、ビルドの際にエラーが無視されます。
filterSource java.io.File No ワークスペースフィルターのソースを指定するファイル。設定で指定され、embeddeds または subpackages を使用して挿入されるフィルターはファイルコンテンツと結合されます。
filters com.day.jcr.
vault.maven.pack.impl.
DefaultWorkspaceFilter
No パッケージのコンテンツを定義するフィルター要素を格納します。実行すると、filter.xml ファイルにフィルターが追加されます。以下のフィルターの使用の節を参照してください。
finalName java.lang.String Yes Maven プロジェクト(build フェーズ)で定義される finalName 生成されるパッケージの ZIP ファイルの名前(ファイル拡張子 .zip を除く)
group java.lang.String Yes Maven プロジェクトで定義される groupID 生成されるコンテンツパッケージのグループ ID。この値は、コンテンツパッケージのターゲットインストールパスに含まれます。
outputDirectory java.io.File Yes Maven プロジェクトで定義されるビルドディレクトリ コンテンツパッケージが保存されるローカルディレクトリ
prefix java.lang.String No
project org.apache.maven.
project.MavenProject
Yes Maven プロジェクト
properties java.util.Map No properties.xml ファイルで設定できる追加のプロパティ。これらのプロパティで定義済みの次のプロパティを上書きすることはできません。
  • group:group パラメーターを使用して設定
  • name:name パラメーターを使用して設定
  • version:version パラメーターを使用して設定
  • description:プロジェクトの説明から設定
  • groupId:Maven プロジェクト記述子のグループ ID
  • artifactId:Maven プロジェクト記述子のアーティファクト ID
  • dependencies:dependencies パラメーターを使用して設定
  • createdBy:user.name システムプロパティの値
  • created:現在のシステム時刻
  • requiresRoot:requiresRoot パラメーターを使用して設定
  • packagePath:グループおよびパッケージの名前から自動的に生成
requiresRoot boolean Yes false パッケージにルートが必要かどうかを定義します。これは、properties.xml ファイルの <code>requiresRoot</code> プロパティになります。
subPackages java.util.List No
version java.lang.String Yes Maven プロジェクトで定義されるバージョン コンテンツパッケージのバージョン
workDirectory java.io.File Yes Maven プロジェクト(build フェーズ)で定義されるディレクトリ パッケージに含めるコンテンツを格納するディレクトリ

フィルターの使用

パッケージのコンテンツを定義するには、フィルター要素を使用します。フィルターは、パッケージの 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>

読み込みモード

mode 要素は、パッケージが読み込まれる際にリポジトリ内のコンテンツがどのような影響を受けるかを定義します。使用できる値は次のとおりです。

  • merge:まだリポジトリに含まれていないパッケージのコンテンツが追加されます。パッケージ内およびリポジトリ内のコンテンツは変更されません。コンテンツがリポジトリから削除されることはありません。
  • replace:リポジトリに含まれていないパッケージのコンテンツがリポジトリに追加されます。リポジトリ内のコンテンツは、パッケージ内の一致するコンテンツに置き換えられます。コンテンツがパッケージに存在しない場合、そのコンテンツはリポジトリから削除されます。
  • update:リポジトリに含まれていないパッケージのコンテンツがリポジトリに追加されます。リポジトリ内のコンテンツは、パッケージ内の一致するコンテンツに置き換えられます。既存のコンテンツはリポジトリから削除されます。

フィルターに mode 要素が含まれていない場合は、デフォルト値 replace が使用されます。

次の例では、workflow-mbean OSGi バンドルを格納するパッケージを作成します。POM ファイルでは、jcr_root ディレクトリを builtContentDirectory プロパティの値と見なします。jcr_root ディレクトリでは、リポジトリをミラーリングするディレクトリ構造にバンドルの JAR ファイルが格納されます。

jcr_root/apps/myapp/install/workflow-mbean-0.03-SNAPSHOT.jar

このゴールは package build フェーズにバインドされるので、次のコマンドで package ゴールを実行します。

mvn package
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.20</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

プラグインの executions セクションの package ゴールを表す代わりに、content-package をプロジェクトの packaging 要素の値として使用できます。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>
  <packaging>content-package</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.20</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

help

パラメーター

名前 種類 必須 デフォルト値 説明
detail boolean No false 各ゴールに設定可能なプロパティをすべて表示するかどうかを指定します。値 true を指定すると、設定可能なプロパティがすべて表示されます。
goal String No ヘルプを表示するゴールの名前。値を指定しない場合は、すべてのゴールのヘルプが表示されます。
indentSize int No 2 各レベルのインデントに使用するスペースの数。値を指定する場合は、正の値を使用してください。
lineLength int No 80 表示行の最大長。値を指定する場合は、正の値を使用してください。

Content Package Maven Plugin の入手

プラグインはアドビの公開リポジトリから入手できます。プラグインをダウンロードするには、次の Maven プロファイルを Maven 設定ファイルに追加してアクティブ化します。Maven コマンドを使用する場合は、必要に応じてプラグインがローカルリポジトリにダウンロードされます。

注意:

Adobe Public Releases リポジトリは参照可能なリポジトリではないので、Web ブラウザーを使用してリポジトリの URL にアクセスすると、「見つかりません」という内容のエラーが表示されます。ただし、Maven はリポジトリのディレクトリにアクセスできます。

<profile>
    <id>adobe-public</id>
    <activation>
         <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
         <releaseRepository-Id>adobe-public-releases</releaseRepository-Id>
         <releaseRepository-Name>Adobe Public Releases</releaseRepository-Name>
         <releaseRepository-URL>https://repo.adobe.com/nexus/content/groups/public</releaseRepository-URL>
    </properties>
    <repositories>
         <repository>
             <id>adobe-public-releases</id>
             <name>Adobe Basel Public Repository</name>
             <url>https://repo.adobe.com/nexus/content/groups/public</url>
             <releases>
                 <enabled>true</enabled>
                 <updatePolicy>never</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
         </repository>
     </repositories>
     <pluginRepositories>
         <pluginRepository>
             <id>adobe-public-releases</id>
             <name>Adobe Basel Public Repository</name>
             <url>https://repo.adobe.com/nexus/content/groups/public</url>
             <releases>
                 <enabled>true</enabled>
                 <updatePolicy>never</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
         </pluginRepository>
     </pluginRepositories>
</profile>

コンテンツパッケージへの OSGi バンドルの埋め込み

Content Package Maven Plugin を使用して、OSGi バンドルをコンテンツパッケージに埋め込みます。バンドルを埋め込むには、次の設定を実装します。

  • Maven プロジェクトの依存関係としてバンドルを宣言する必要があります。
  • プラグイン設定は、パッケージ内のバンドルの目的のパスを使用してバンドルを参照します。

次のサンプルの POM では、Apache Sling JCR UserManager バンドルを格納するパッケージを作成します。パッケージでは、バンドルの JAR は jcr_root/apps/myapp/install フォルダーにあります。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
             http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
  	<groupId>com.adobe.example.myapp</groupId>
	<artifactId>embedded-example</artifactId>
	<packaging>content-package</packaging>
	<version>1.0.0-SNAPSHOT</version>

   <build>
	<plugins>
	    <plugin>
	       <groupId>com.day.jcr.vault</groupId>
		    <artifactId>content-package-maven-plugin</artifactId>
		    <version>0.0.20</version>
		    <extensions>true</extensions>
		    <configuration>
			<filters>
			    <filter>
				<root>/apps/myapp</root>
			    </filter>
			 </filters>
			 <embeddeds>
			    <embedded>
				<groupId>org.apache.sling</groupId>
				<artifactId>org.apache.sling.jcr.jackrabbit.usermanager</artifactId>
				<target>/apps/myproject/install</target>
			     </embedded>
			 </embeddeds>
		     </configuration>
		</plugin>	
	   </plugins>
    </build>
    <dependencies>
	<dependency>
	     <groupId>org.apache.sling</groupId>
	     <artifactId>org.apache.sling.jcr.jackrabbit.usermanager</artifactId>
	     <version>2.2.0</version>
	</dependency>
    </dependencies>	
</project>

パッケージへのサムネール画像またはプロパティファイルの追加

パッケージのプロパティをカスタマイズするには、デフォルトのパッケージ設定ファイルを置き換えます。例えば、パッケージを識別するためのサムネール画像をパッケージマネージャーとパッケージ共有に追加します。

パッケージでは、FileVault に特有のファイルは /META-INF/vault フォルダーにあります。ソースファイルはファイルシステム内の任意の場所に配置できます。POM ファイルでは、target/vault-work/META-INF にソースファイルをコピーするように、パッケージに追加するビルドのリソースを定義します。

次の POM コードでは、プロジェクトのソースの META-INF フォルダー内のファイルをパッケージに追加します。

<build>
    <resources>
        <!-- vault META-INF resources (thumbnail etc.) -->
        <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>

アーキタイプを使用した CQ プロジェクトの生成

CQ プロジェクトを生成するための複数の Maven アーキタイプが用意されています。開発目的に応じたアーキタイプを使用してください。

注意:

Apache Sling プロジェクトにも、CQ 開発に役立つアーキタイプが用意されています。これらのアーキタイプについては、http://sling.apache.org/site/maven-archetypes.html を参照してください。

各アーキタイプでは以下の項目を生成します。

  • プロジェクトフォルダー構造
  • POM ファイル
  • FileVault 設定ファイル

アーキタイプアーティファクトはアドビの Maven 公開リポジトリから入手できます。アーキタイプをダウンロードして実行するには、Maven の archetype:generate コマンドのパラメーターを使用して、アーキタイプとアドビのリポジトリを特定します。

mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId={id_of_archetype} -DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Maven アーキタイププラグインは、シェルまたはコマンドプロンプトでインタラクティブモードを使用して、プロジェクトに関する情報を収集します。提供された情報は、プロジェクトの様々なプロパティ(フォルダー名、アーティファクト ID など)の設定に使用されます。

POM ファイル

生成される POM ファイルは、コードのコンパイル、バンドルの作成および CQ へのバンドルのデプロイのためのコマンドをパッケージに追加します。Maven プロジェクトの groupIDartifactIdversion および name の各プロパティは、Maven の archetype:generate インタラクティブプロンプトで指定した値を使用して自動的に設定されます。

生成される pom.xml ファイルでは、以下のデフォルト値を変更できます。

  • CQ サーバー名または IP アドレス:デフォルト値は localhost です。project/properties の下にある crx.host 要素にこの値が格納されます。
  • CQ サーバー用のポート番号:デフォルト値は 4502 です。project/properties の下にある crx.port 要素にこの値が格納されます。
  • Content Package Maven Plugin のバージョン:content-package-maven-pluginartifactId と共に、プラグインの version 要素の内容として最新バージョンを使用します。デフォルト値は 0.0.20 です。

アーキタイプの使用

  1. シェルウィンドウまたはコマンドプロンプトで、Maven の archetype:generate コマンドを入力します。メッセージが表示されたら、残りのパラメーターの値を指定します。

    各パラメーターについては、使用するアーキタイプに関する節を参照してください。

  2. テキストエディターで pom.xml ファイルを開き、必要に応じてデフォルト値を編集します。
  3. 生成されたフォルダーにリソースを配置します。
  4. "mvn clean install" コマンドを入力します。

simple-content-package-archetype

シンプルな CQ アプリケーション用のリソースのインストールに適した maven プロジェクトを作成します。フォルダー構造は CQ リポジトリの /apps フォルダーの下で使用されます。POM では、フォルダーに配置するリソースをパッケージ化するためのコマンドと、CQ サーバーにパッケージをインストールするためのコマンドを定義します。

アーキタイプアーティファクトのプロパティ:

  • グループ ID:com.day.jcr.vault
  • アーティファクト ID:simple-content-package-archetype
  • バージョン:1.0.2
  • リポジトリ:adobe-public-releases

Maven コマンド:

mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

アーキタイプのパラメーター:

  • groupId:Maven が生成するコンテンツパッケージのグループ ID。この値は POM ファイルで自動的に使用されます。
  • artifactId:コンテンツパッケージの名前。この値はプロジェクトフォルダーの名前としても使用されます。
  • version:コンテンツパッケージのバージョン。
  • package:この値は simple-content-package-archetype には使用されません。
  • appsFolderName:/apps の下にあるフォルダーの名前。
  • artifactName:コンテンツパッケージの説明。
  • packageGroup:コンテンツパッケージグループの名前。この値は、Content Package Maven Plugin の package ゴールの group パラメーターを設定します。

フォルダー構造:

${artifactId}
   |- pom.xml
   |- README.txt
   |- src
      |- main
         |- content
             |- jcr_root
                 |- apps
                     |- ${appsFolderName}
                            |- components 
                               |- .content.xml
                            |- config
                            |- install
             |- META-INF
                 |- vault
                     |- config.xml
                     |- filter.xml
                     |- nodetypes.cnd
                     |- properties.xml
                     |- definition
                        |- .content.xml

simple-content-package-with-embedded-archetype

simple-content-package-archetype と同じタスクを実行します。また、Maven の公開リポジトリからアーティファクトをダウンロードして追加します。

アーキタイプバンドルのプロパティ:

  • グループ ID:com.day.jcr.vault
  • アーティファクト ID:simple-content-package-with-embedded-archetype
  • バージョン:1.0.2
  • リポジトリ:adobe-public-releases

Maven コマンド:

mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-with-embedded-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

アーキタイプのパラメーター:

  • groupId:Maven が生成するコンテンツパッケージのグループ ID。この値は POM ファイルで自動的に使用されます。
  • artifactId:コンテンツパッケージの名前。この値はプロジェクトフォルダーの名前としても使用されます。
  • version:コンテンツパッケージのバージョン。
  • package:このパラメーターは使用されません。
  • appsFolderName:/apps の下にあるフォルダーの名前。
  • artifactName:コンテンツパッケージの説明。
  • embeddedArtifactId:コンテンツパッケージに埋め込むアーティファクトの ID。
  • embeddedGroupId:埋め込むアーティファクトのグループ ID。
  • embeddedVersion:埋め込むアーティファクトのバージョン。
  • packageGroup:コンテンツパッケージグループの名前。この値は、Content Package Maven Plugin の package ゴールの group パラメーターを設定します。

フォルダー構造:

${artifactId}
   |- pom.xml
   |- README.txt
   |- src
      |- main
         |- content
             |- jcr_root
                 |- apps
                     |- ${appsFolderName}
                            |- components 
                            |- config
                            |- install
             |- META-INF
                 |- vault
                     |- config.xml
                     |- filter.xml
                     |- nodetypes.cnd
                     |- properties.xml
                     |- definition

multimodule-content-package-archetype

CQ アプリケーションを開発してリソースをサーバーにインストールするためのフォルダー構造を含む maven プロジェクトを作成します。

bundle フォルダーには、開発する Java および JUnit のソースファイルを格納するフォルダー構造が含まれています。このフォルダー内の pom.xml ファイルは OSGi バンドルを作成します。POM の以下の値によって、アーティファクトとバンドルが識別されます。

  • artifactID:${artifactID}-bundle
  • Bundle-SymbolicName:${groupId}.${artifactId}-bundle

${artifactID}${groupId} は、アーキタイプの実行時にパラメーターに指定する値です。

content フォルダーには、CQ サーバーにインストールされるリソースが格納されます。artifactID の値は ${artifactID}multimodule-bundle です。

親フォルダーには、Maven プラグインと依存関係を管理する親 POM が格納されます。

アーキタイプバンドルのプロパティ:

  • グループ ID:com.day.jcr.vault
  • アーティファクト ID:multimodule-content-package-archetype
  • バージョン:1.0.2
  • リポジトリ:adobe-public-releases

Maven コマンド:

mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=multimodule-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

アーキタイプのパラメーター:

  • groupId:Maven が生成するコンテンツパッケージのグループ ID。この値は POM ファイルで自動的に使用されます。
  • artifactId:コンテンツパッケージの名前。この値はプロジェクトフォルダーの名前としても使用されます。
  • version:コンテンツパッケージのバージョン。
  • package:この値は multimodule-content-package-archetype には使用されません。
  • appsFolderName:/apps の下にあるフォルダーの名前。
  • artifactName:コンテンツパッケージの説明。
  • packageGroup:コンテンツパッケージグループの名前。この値は、Content Package Maven Plugin の package ゴールの group パラメーターを設定します。

フォルダー構造:

${artifactId}
   |- pom.xml
   |- bundle
      |- pom.xml
      |- src
         |- main
            |- java
               |- ${groupId}
                  |- SimpleDSComponent.java
         |- test
            |- java
               |- ${groupId}
                  |- SimpleUnitTest.java
   |- content
      |- pom.xml
      |- src
         |- main
            |- content
               |- jcr_root
                  |- apps
                     |- ${appsFolderName} 
                            |- config
                            |- install
                  |- META-INF
                      |- vault
                         |- config.xml
                         |- filter.xml
                         |- nodetypes.cnd
                         |- properties.xml
                         |- definition
                            |- .content.xml

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー