[Plugin Overview]プラグインの概要

Adding functionality to Maven is done through the Maven plugin mechanism. Maven comes shipped with numerous plugins and provides an extensible framework for writing custom plugins. Details on custom Maven plugins can be found in the Writing a Plugin section of Maven's web site.

Maven への機能の追加は、Maven プラグイン機構を通して、行われます。Maven は多数のプラグインとともに配布され、カスタムプラグインを記述するための拡張可能なフレームワークを提供しています。 カスタム Maven プラグインの詳細については、Maven のウェブサイトの プラグインの記述 (Writing a Plugin) で見つけることができます。

Jetspeed 2 has developed a custom Maven plugin that centralizes most common build goals required to build a Jetspeed 2 based portal application. This provides many benefits:

Jetspeed 2 は、Jetspeed 2 ベースのポータルアプリケーションを構築するために必要な、多くで共通の構築ゴールをまとめた、カスタム Maven プラグインを開発しました。 これは、次の多くの利点があります。

  • Better reusability of common build goals. Developers creating a new portal application can leverage the Jetspeed 2 Maven plugin for common build operations.
  • The ability to quickly get started with a portal application. With the goal j2:portal.genapp a new portal application can be created. The developer of the new application can reuse the Jetspeed 2 Maven plugin goals for common build operations for quickStart, portlet deployment, etc.
  • Preparation for future migration to Maven 2 (M2). With M2, custom goals are encapsulated in plugins, maven.xml is deprecated. By centralizing most of the Jetspeed 2 build goals to the Jetspeed 2 Maven plugin, migration to M2 should be much easier.
  • 共通の構築ゴールのより良い再利用性。新たなポータルアプリケーションを作成する開発者は共通の構築操作に関する Jetspeed 2 Maven プラグインを活用することができます。
  • すばやくポータルアプリケーションを始める機能。j2:portal.genapp を用いて、 新しいポータルアプリケーションを作成できます。新しいアプリケーションの開発者は、quickStart、ポートレットの配備など、共通ののビルド操作用 Jetspeed 2 Maven プラグインのゴールを再利用できます。
  • Maven 2 (M2) への将来的な移行の準備。M2 を利用して、カスタムゴールはプラグイン内にカプセル化され、maven.xml は廃止されます。 Jetspeed 2 Maven プラグインへの多くの Jetspeed 2 構築ゴールを集中することで、M2 への移行は非常に簡単になります。

[Portal Application creation and configuration Goals]ポータルアプリケーションの作成と設定のゴール

[Creating a new Portal Application]新しいポータルアプリケーションの作成

j2:portal.genapp Generates or updates a custom portal application. Checkout the Getting Started document for basic usage of this goal.

j2:portal.genapp.minimal Works similar to j2:portal.genapp. However, it will only copy the following directories/files from WEB-INF/pages.
  • /WEB-INF/pages/Administrative/** (all contents)
  • /WEB-INF/pages/page.security
j2:portal.genapp カスタムポータルアプリケーションの生成または更新。 このゴールの基本利用方法に関して、導入 ドキュメントを確認してください。

j2:portal.genapp.minimal j2:portal.genapp と同様に動作します。しかし、WEB-INF/pages から 以下のディレクトリとファイルだけをコピーします。
  • /WEB-INF/pages/Administrative/** (all contents)
  • /WEB-INF/pages/page.security

[Configuring and updating a Portal Application]ポータルアプリケーションの設定と更新

The j2:portal.genapp goal above is actually no more than a wrapper around several (sub)goals which can also be used individually to update and configure your portal application:

上の j2:portal.genapp ゴールは、実際には、以下のようなポータルアプリケーションを個々に更新や設定するために使用することができるいくつかのゴールに関するラッパーでしかありません。

j2:portal.copy.webapp Copies the (static) Jetspeed 2 portal web resource from the plugin to the ${org.apache.jetspeed.portal.webapp.dir} folder.

Running this goal again will not clear out previous resources but will overwrite existing resources.

If you need to upgrade to a newer version of the Jetspeed 2 portal you should clear out these resources yourself first. By default, the target folder is configured within the maven default target folder and running the clear goal will do exactly that.
j2:portal.copy.webapp.minimal Similar to j2:portal.copy.webapp However, it will only copy the following directories/files from WEB-INF/pages.
  • /WEB-INF/pages/Administrative/** (all contents)
  • /WEB-INF/pages/page.security
j2:portal.conf.project Creates a new maven or updates an existing portal project configuration in the ${org.apache.jetspeed.portal.home.dir} folder.

It creates a hiearchy of 5 maven project files:
  • project-info.xml
  • core-build.xml extends project-info.xml
  • jetspeed-components.xml extends core-build.xml
  • full-portal.xml extends jetspeed-components.xml
  • project.xml extends full-portal.xml
Of the above files, the first and the last (project-info.xml and project.xml) may be modified to provide additional project information and configuration and will not be updated by this goal again. Only the other 3 files will be rewritten by this goal. If you need to upgrade to a newer version of the Jetspeed 2 portal your own customization will be preserved.

Additionally, you can add your own maven.xml and/or project.properties or build.properties to further customize your portal. These also will be preserverd when you run this goal again.
j2:portal.conf.sql Generates the portal sql schema DDL for the configured database(s) under the ${org.apache.jetspeed.portal.sql.dir}, as well as copies over statically defined common and selected database specific sql DML and DDL (possibly overriding generated DDL).

The content of the sql target folder is cleared out first when this goal is run.
j2:portal.conf.ojb Copies the OJB configuration, filtered for the currently selected production database to the ${org.apache.jetspeed.portal.target.dir} folder.

As default, the above target folder is configured under the default maven war target folder. The maven clear goal will also remove this filtered OJB configuration.
j2:portal.conf.ldap Copies the LDAP configuration, to the ${org.apache.jetspeed.portal.target.dir} folder.
j2:portal.conf.jetspeed Copies the filtered jetspeed.properties portal configuration to the ${org.apache.jetspeed.portal.target.dir} folder.

As default, the above target folder is configured under the default maven war target folder. The maven clear goal will also remove this filtered jetspeed.properties file.
j2:portal.conf.tomcat Copies a filtered Tomcat context descriptor, containing current database connection configuration to the ${org.apache.jetspeed.portal.conf.dir} folder.

Based on the ${org.apache.jetspeed.catalina.major.version} setting, a Tomcat 5.0.x or 5.5.x type template context descriptor will be used.

The filtered Tomcat context descriptor will be copied to the Tomcat server by the j2:portal.deploy goal.

If you need to change the Tomcat major version and/or database connection configuration, you need to run this goal again before (re)deploying your portal.

As default, the above target folder is configured under the default maven target folder. The maven clear goal will remove this filtered context descriptor file.
j2:portal.copy.webapp プラグインから ${org.apache.jetspeed.portal.webapp.dir} フォルダへ (静的な) Jetspeed 2 ポータルウェブリソースをコピーします。


Jetspeed 2 ポータルの新しいバージョンへアップグレードする必要がある場合は、まず、これらのリソースを削除しなければなりません。 デフォルトでは、対象フォルダが Maven デフォルトの対象フォルダ内で構成され、clear ゴールの実行でそれが実行されます。
j2:portal.copy.webapp.minimal j2:portal.copy.webapp と同様。しかし、WEB-INF/pages から以下のディレクトリとファイルをコピーするだけです。
  • /WEB-INF/pages/Administrative/** (すべてのコンテンツ)
  • /WEB-INF/pages/page.security
j2:portal.conf.project 新規に Maven プロジェクトを作成、または、${org.apache.jetspeed.portal.home.dir} フォルダ内の既存のポータルプロジェクト設定を更新します。

次の 5 つの Maven プロジェクトファイルの階層が作成されます。
  • project-info.xml
  • core-build.xml は project-info.xml を extend します
  • jetspeed-components.xml は core-build.xml を extend します
  • full-portal.xml は jetspeed-components.xml を extend します
  • project.xml は full-portal.xml を extend します
上のファイルで、始めと最後のもの (project-info.xml と project.xml) は、追加的なプロジェクト情報や設定を提供するために修正されるかもしれません。そして、それらはこのゴールによって再度更新されません。他の 3 つのファイルだけは、このゴールによって書き換えられます。 Jetspeed 2 の最新バージョンにアップグレードする必要がある場合は、独自にカスタマイズしたものを保存しておきます。

追加的に、ポータルをさらにカスタマイズするために独自の maven.xmlを追加したり、project.properties または build.properties を追加できます。 このゴールを再度実行するときには、これらを保存しておきます。
j2:portal.conf.sql ${org.apache.jetspeed.portal.sql.dir} 以下に、設定されたデータベース用にポータル SQL スキーマ DDL を生成します。 静的に定義された共通および選択されたデータベース固有の SQL の DML および DDL (生成された DDL が優先可能なら) も同様にコピーします。

このゴールが実行されると、SQL 対象フォルダの内容は、はじめに削除されます。
j2:portal.conf.ojb 現在選択されている、本稼働用のデータベース向けのフィルタがされている OJB 設定を、${org.apache.jetspeed.portal.target.dir} へコピーします。

標準では、上記の対象フォルダは標準の Maven WAR 対象フォルダ以下に構成されます。 Maven clear ゴールは、このフィルタされた OJB 設定を削除します。
j2:portal.conf.ldap ${org.apache.jetspeed.portal.target.dir} フォルダへ LDAP 設定をコピーします。
j2:portal.conf.jetspeed ${org.apache.jetspeed.portal.target.dir} フォルダへフィルタされた jetspeed.properties ポータル設定をコピーします。

デフォルトで、上記の対象フォルダは標準の Maven の WAR 対象フォルダ以下に構成されます。 Maven clear ゴールは、このフィルタされた jetspeed.properties ファイルも削除します。
j2:portal.conf.tomcat ${org.apache.jetspeed.portal.conf.dir} フォルダへの現在のデータベース接続設定を含めた、フィルタされた Tomcat コンテキスト記述子をコピーします。

${org.apache.jetspeed.catalina.major.version} 設定に基づき、Tomcat 5.0.x または 5.5.x タイプのテンプレートコンテキスト記述子が使用されます。

フィルタされた Tomcat コンテキスト記述子は、j2:portal.deploy ゴールによって、Tomcat サーバへコピーされます。

Tomcat のメジャーバージョンおよびデータベース接続設定を変更したい場合、ポータルを (再) 配備する前に再度、このゴールを実行する必要があります。

デフォルトでは、上記の対象フォルダは、標準の Maven 対象フォルダ以下に構成されます。 Maven clear ゴールは、このフィルタされたコンテキスト記述子ファイルを削除します。

[Portal Application Deployment Goals]ポータルアプケーション配備ゴール

[Quickstart deployment goals]クイックスタート用の配備ゴール

Several goals are available for quickly deploying the Portal Application together with a predefined set of Portlet Applications and optionally with creating and seeding the portal database.


j2:doStart A generic goal for deploying the portal application and setting up the required dependencies for the configured Tomcat Server (shared libraries, portal application context, etc.).

This goal requires the plugin property deployType to be set. The default value is "j2:fullDeploy" (see below).

If plugin property recreateDB is set, goal j2:db.recreate is invoked.

All existing Jetspeed 2 standard and demo portlet applications are removed through goal j2:remove.wars.

The shared dependecies are copied to the Tomcat Server with goal j2:copy.shared.deps.

And finally, the set deployType plugin property value is used to run a specific deploy goal.
j2:quickStart Invokes j2:doStart with deployType="j2:fullDeploy" and recreateDB=true.
j2:nodbQuickStart Invokes j2:doStart with deployType="j2:nodbfullDeploy" and recreateDB=false.
j2:basicStart Invokes j2:doStart with deployType="j2:basicDeploy" and recreateDB=true.
j2:nodbBasicStart Invokes j2:doStart with deployType="j2:nodbBasicDeploy" and recreateDB=false.
j2:minStart Invokes j2:doStart with deployType="j2:minDeploy" and recreateDB=true.
j2:nodbMinStart Invokes j2:doStart with deployType="j2:nodbMinDeploy" and recreateDB=false.
j2:doStart ポータルアプリケーションを配備して、設定された Tomcat サーバ (共有ライブラリ、ポータルアプリケーションのコンテキストなど) 用の、必要な依存関係を設定するための汎用的なゴールです。

このゴールは、設定するために deployType プラグインプロパティが必要です。デフォルト値は "j2:fullDeploy" です (以下参照)。

recreateDB プラグインプロパティが設定されている場合、j2:db.recreate ゴールが呼び出されます。

すべての既存の Jetspeed 2 標準およびデモポートレットアプリケーションは、j2:remove.wars ゴールを通して、削除されます。

共有の依存関係は、j2:copy.shared.deps を用いて、Tomcat サーバへコピーされます。

そして、最後に、設定された deployType プラグインプロパティの値は、指定された配備ゴールを実行するために使用されます。
j2:quickStart deployType="j2:fullDeploy" および recreateDB=true を用いて、j2:doStart を呼び出します。
j2:nodbQuickStart deployType="j2:nodbfullDeploy" および recreateDB=false を用いて、j2:doStart を呼び出します。
j2:basicStart deployType="j2:basicDeploy" および recreateDB=true を用いて、j2:doStart を呼び出します。
j2:nodbBasicStart deployType="j2:nodbBasicDeploy" および recreateDB=false を用いて、j2:doStart を呼び出します。
j2:minStart deployType="j2:minDeploy" および recreateDB=true を用いて、j2:doStart を呼び出します。
j2:nodbMinStart deployType="j2:nodbMinDeploy" および recreateDB=false を用いて、j2:doStart を呼び出します。

[Deployment supporting Goals]配備をサポートしているゴール

j2:remove.wars Removes the portal, all standard and demo portlet applications (see j2:fullDeploy below) and their context descriptors (if any) from the Tomcat Server.
j2:catalina.base.shared Copies all base jars necessary for the common portlet container.
j2:catalina.sharedCopies all jars necessary for common container
j2:copy.shared.deps Wrapper goal invoking j2:catalina.base.shared and j2:catalina.shared.
j2:portal.deploy Deploys the portal application only and its dependencies to the Tomcat Server, but no portlet applications.

First, it removes the current portal installation with goal j2:remove.wars.

Then it copies and expands the build portal war from the local maven repository to the application server.

And it copies a Tomcat context descriptor for the portal (see also goal j2:portal.conf.tomcat).

Finally, it installs the shared dependencies with goal j2:copy.shared.deps.
j2:remove.wars Tomcat サーバから、ポータル、すべての標準およびデモポートレットアプリケーション (以下の j2:fullDeploy を参照) と (存在すれば) それらのコンテンツ記述子を削除します。
j2:catalina.base.shared 共通のポートレットコンテナ用に必要なすべての基本 JAR ファイルをコピーします。
j2:catalina.shared共通コンテナ用に必要なすべての JAR ファイルをコピーします。
j2:copy.shared.deps j2:catalina.base.shared および j2:catalina.shared を呼び出すラッパーゴール。
j2:portal.deploy Tomcat サーバへポータルアプリケーションおよびそれに依存するものだけを配備します。

はじめに、j2:remove.wars ゴールで現在のインストールされたポータルを削除します。

次に、ローカル Maven リポジトリからアプリケーションサーバへ構築されたポータル WAR をコピーして展開します。

そして、ポータル用に Tomcat コンテンツ記述子をコピーします。(j2:portal.conf.tomcat ゴールも参照してください)

最後に、j2:copy.shared.deps ゴールで共有される依存するものをインストールします。

[Standard and Demo Portlet Application deployment goals]標準およびデモポートレットアプリケーション配備ゴール

j2:deploy Generic goal to deploy a portlet application identified by property ${maven.war.final.name}.

The portlet application is searched for in the Jetspeed2 group of the local maven repository. When searching portlets in the repository, this goal searches for the portlet application given the Jetspeed 2 version number configured in the plugin. The name of the file searched in the repository following the convention ${maven.war.final.name}-${jetspeed.version}.war and is deployed as ${maven.war.final.name}.war.
j2:pam.layoutdeployDeploys Jetspeed local layout portlet application.
j2:pam.admindeployDeploys Jetspeed Administration portlet application.
j2:pam.tsdeployDeploys Pluto Test Suite portlet application.
j2:pam.strutsdeployDeploys the struts mailreader demo portlet application.
j2:pam.jpetstoredeployDeploys the iBatis JPetstore based demo portlet application.
j2:pam.jsfdeployDeploys the JSF demo portlet application which uses Jetspeed generic JSF portlet bridge.
j2:pam.jsfmyfacesdeployDeploys the JSF demo portlet application which uses MyFaces native JSF portlet bridge.
j2:pam.phpdeployDeploys the Jetspeed PHP bridge demo portlet application.
j2:pam.perldeployDeploys the Jetspeed Perl bridge demo portlet application.
j2:pam.rssdeployDeploys the RSS feed demo portlet application.
j2:nodbMinDeploy Deploys the portal using the j2:portal.deploy goal and only the layout and admin portlets using j2:pam.layoutdeploy and j2:pam.admindeploy.
j2:minDeploy The same functionality as j2:nodbMinDeploy and additionaly seeds the portal database using the j2:db.entities goal.
j2:nodbfullDeploy The same functionality as j2:nodbMinDeploy but additional deploys all other demo portlet applications (see full list above).
j2:fullDeploy The same functionality as j2:nodbFullDeploy and additionaly seeds the portal database using the j2:db.entities goal.
j2:deploy ${maven.war.final.name} プロパティによって特定されたポートレットアプリケーションを配備するための標準ゴール。

ローカルの Maven リポジトリの Jetspeed 2 グループ内で、ポートレットアプリケーションを検索します。 リポジトリ内でポートレットを検索するときに、このゴールは、プラグイン内で設定された Jetspeed 2 のバージョン番号で与えられたポートレットアプリケーションを検索します。 ${maven.war.final.name}-${jetspeed.version}.war の書式に従ったリポジトリ内で検索されたファイル名で、${maven.war.final.name}.war として配備されます。
j2:pam.layoutdeployJetspeed ローカルレイアウトポートレットアプリケーションを配備します。
j2:pam.admindeployJetspeed 管理ポートレットアプリケーションを配備します。
j2:pam.tsdeployPluto テストスイートポートレットアプリケーションを配備します。
j2:pam.strutsdeployStruts メールリーダーデモポートレットアプリケーションを配備します。
j2:pam.jpetstoredeployiBatis Jpetstore ベースのデモポートレットアプリケーションを配備します。
j2:pam.jsfdeployJetspeed で汎用的な JSF ポートレットブリッジを使用した JSF デモポートレットアプリケーションを配備します。
j2:pam.jsfmyfacesdeployMyFaces に含まれる JSF ポートレットブリッジを使用した JSF デモポートレットアプリケーションを配備します。
j2:pam.phpdeployJetspeed PHP ブリッジデモポートレットアプリケーションを配備します。
j2:pam.perldeployJetspeed Perl ブリッジデモポートレットアプリケーションを配備します。
j2:pam.rssdeployRSS フィードデモポートレットアプリケーションを配備します。
j2:nodbMinDeploy j2:portal.deploy ゴールを使用したポータルを配備し、j2:pam.layoutdeployj2:pam.admindeploy を使用して、レイアウトポートレットと管理ポートレットだけを配備します。
j2:minDeploy j2:nodbMinDeploy と同様な機能に加えて、j2:db.entities ゴールを使用して、ポータルデータベースを作成します。
j2:nodbfullDeploy j2:nodbMinDeploy と同様な機能ですが、追加で、他のすべてのデモポートレットアプリケーション (上のすべてのリストを参照) を配備します。
j2:fullDeploy j2:nodbFullDeploy と同様な機能に加えて、j2:db.entities ゴールを使用して、ポータルデータベー>スを作成します。

[Database Management Goals]データベース管理ゴール

j2:start.production.serverStarts the HSQLDB production database for usage by the portal.This goal is optional to those who use the default embedded Derby database.
j2:start.test.server Starts the HSQLDB test database to be used for the testcases during the build of Jetspeed 2. This goal is optional for those who use the default embedded Derby database for testing Jetspeed 2.
j2:db.create.test Creates the test database tables. If using the HSQLDB database, it should be started first with goal j2:start.test.server.

Existing portal tables are dropped first. The first time, this will lead to "table does not exist" error messages but they can be (and are) ignored.
j2:db.create.production Creates the production database tables. If using the HSQLDB database, it should be started first with goal j2:start.production.server.

Existing portal tables are dropped first. The first time, this will lead to "table does not exist" kind of error messages but they can (and are) ignored.
j2:db.recreate Recreates the production database using the j2:db.create.production goal but first (re)generates the sql scripts using j2:portal.conf.sql.
j2:db.drop.testDrops the test database portal tables.
j2:db.drop.productionDrops the production database portal tables.
j2:db.entities Populates the users information for the default PSML configuration configured with Jetspeed 2.
j2:start.production.serverポータルによって使用される HSQLDB 本稼働用データベースを起動します。このゴールは、デフォルトで組み込まれている Derby データベースを使う人は必須ではありません。
j2:start.test.server Jetspeed 2 のビルド中にテスト用で使用するために、HSQLDB テスト用データベースを起動します。このゴールは、デフォルトで組み込まれている Derby データベースを使って Jetspeed 2 をテストするユーザは必須ではありません。
j2:db.create.test テスト用データベースのテーブルを作成します。もし、HSQLDB を利用する場合、j2:start.test.server ゴール内で先に起動されていなければなりません。

既存のポータルのテーブルは始めに削除されます。初めて実行する場合は、「table does not exist」エラーメッセージが表示されますが、それらは無視することができます。
j2:db.create.production 本稼働用のデータベースのテーブルを作成します。もし、HSQLDB を利用する場合、j2:start.production.server ゴール内で先に起動されていなければなりません。

既存のポータルのテーブルは始めに削除されます。初めて実行する場合は、「table does not exist」エラーメッセージが表示されますが、それらは無視することができます。
j2:db.recreate j2:db.create.production ゴールを利用して、本稼働用データベースを再作成しますが、まず、j2:portal.conf.sql 使用して、SQL スクリプトを (再) 生成します。
j2:db.entities Jetspeed 2 で構成された標準の PSML 構成用のユーザ情報を投入します。

[LDAP Management Goals]LDAP 管理ゴール

j2:start.ldap.serverStarts the default Apache Directory Server and load the default apacheds-server.xml configuration.
j2:start.ldap.server標準の Apache Directory Server を起動し、標準の apacheds-server.xml 設定を読み込みます。

[Auxillary Jetspeed Components Deployment Goals]補助的な Jetspeed コンポーネント配備ゴール

Generic set of goals for redeploying a specific Jetspeed component.

特定の Jetspeed コンポーネントを再配備するための一般的なゴール群です。

j2:jar.deploy Deploys a Jetspeed core component from the local maven repository to the deployment directory.
j2:jar.deploy.shared Deploys a Jetspeed core component shared library from the local maven repository to the Tomcat shared library directory.
j2:deployDecorations Deploys all decoration files from the WEB-INF/decorations directory to the deployed portal.
j2:deployTemplates Deploys all template files from the WEB-INF/templates directory to the deployed portal.
j2:jar.deploy ローカル Maven リポジトリから配備ディレクトリへ Jetspeed コアコンポーネントを配備します。
j2:jar.deploy.shared ローカル Maven リポジトリから Tomcat の共有ライブラリディレクトリへ Jetspeed コアコンポーネントを配備します。
j2:deployDecorations WEB-INF/decorations ディレクトリから配備されたポータルへすべてのデコレーションを配備します。
j2:deployTemplates WEB-INF/templates ディレクトリから配備されたポータルへすべてのテンプレートを配備します。