ビルド方法
ここでは、Apache にある Subversion のリポジトリから Jetspeed2 のソースコードを取得して、そのビルド方法を説明します。
ソースコードの取得
Apache では、従来の CVS 管理のリポジトリに加え、様々なプロジェクトで CVS から Subversion への移行が進んできます。Jetspeed も、現在、CVS から移行しています。ですので、CVS も読み込みだけができる状態でアクセスすることが可能です。最新のソースコードを入手するためには、Subversion のリポジトリから取得する必要があります。
では、早速、チェックアウトしていきましょう。チェックアウトするにはもちろん Subversion が必要になるので、http://subversion.tigris.org/ から入手してください。
$ cd $ mkdir svn $ cd svn/ $ svn checkout http://svn.apache.org/repos/asf/portals/jetspeed-2/trunk/ jetspeed-2
指定する URL には、http と https の2種類がありますが、ビルドして利用するだけなら、http の方で問題ありません。https の方は、コミッターが編集をコミットするときなどに利用します。
ビルド環境の準備
ビルド・配備をしていくには、以下のものが必要になります。各サイトよりダウンロードしてください。
表:ビルド・配備に必要なもの 名前 バージョン Maven 1.0 以上 Java 1.4.2_02 以上 Servlet API(Tomcat) 2.3 以上 (Tomcat 5.0.30 以上またはTomcat 5.5.8以上)
今回は、Maven 1.0.2 でビルドを実行して、Tomcat 5.0.30 に配備します。Jetspeed 2 では、Tomcat 4.x をサポートしていないので、注意してください。
$ cd $ mkdir apache $ cd apache/ $ tar zxvf ../jakarta-tomcat-5.0.30.tar.gz $ tar zxvf ../maven-1.0.2.tar.gz
$HOME/apache 以下に展開したので、次に Maven を利用するために環境変数を設定しておきます(Java は /usr/java にインストールしてあるものとします)。たとえば、.bashrc などに
export JAVA_HOME=/usr/java/ export MAVEN_HOME=$HOME/apache/maven-1.0.2 export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
として、
$ . ~/.bashrc
を実行して、その設定を有効にします(次回のログインしたときには、有効になっているので、これは行う必要はありません)。Maven でビルドしていく前に、Maven が正しくインストールされているか確認するために、
$ maven -v __ __ | \/ |__ _Apache__ ___ | |\/| / _` \ V / -_) ' \ ~ intelligent projects ~ |_| |_\__,_|\_/\___|_||_| v. 1.0.2
で Maven が実行できることを確認してください。以上のようにバージョン情報が表示されれば、問題ありません。
プロパティの設定
Jetspeed2 をビルド・配備するためには必要なプロパティをいくつかあります。その設定は Maven で利用されるプロパティであり、それらを設定するためには、${USER_HOME}/build.properties ファイルを作成して、以下のプロパティを環境に応じて、build.properties に記述してください。
JETSPEED2 のビルドに必要な設定 プロパティ 説明 org.apache.jetspeed.project.home チェックアウトした Jetspeed2 のソースコードの場所を指定します。 org.apache.jetspeed.server.home インストールしたTomcatサーバーのルート org.apache.jetspeed.catalina.version.major Tomcatのバージョン:Tomcat 5.0.x (5を指定) または 5.5.x? (5.5を指定) (4.x 系はサポートしていません) org.apache.jetspeed.server.shared インストールしたTomcatの共有するJarファイルを置く場所 org.apache.jetspeed.deploy.war.dir Tomcat内でWebアプリケーションを配備する場所 org.apache.jetspeed.services.autodeployment.user manager ロールをもつTomcatユーザー。 Tomcat設定の章を参照してください。 org.apache.jetspeed.services.autodeployment.password Tomcat の manager ユーザーのパスワード。
Jetspeed2 では、デフォルトでは HSQL を利用していますが、それ以外にも MySQL などの様々なデータベースを利用することができます。デフォルトで利用されるHSQL以外のデータベースでJetspeedを開発実行するためには、データベース設定 のプロパティ設定を参照してください。
以上のプロパティ値を設定すると、たとえば、以下のようになります。ここでは、ユーザー名を taro として、そのホームディレクトリを /export/home/taro としています。
org.apache.jetspeed.project.home=/export/home/taro/svn/jetspeed-2 org.apache.jetspeed.server.home = /export/home/taro/apache/jakarta-tomcat-5.0.30/ org.apache.jetspeed.catalina.version.major=5 org.apache.jetspeed.server.shared = ${org.apache.jetspeed.server.home}/shared/lib org.apache.jetspeed.deploy.war.dir = ${org.apache.jetspeed.server.home}/webapps/ org.apache.jetspeed.services.autodeployment.user=j2deployer org.apache.jetspeed.services.autodeployment.password=j2deployer
Tomcat 設定
次に Tomcat を設定します。Jetspeed2 は、ポートレットライフサイクルマネージャポートレットを利用してポートレットを管理するために、Tomcatマネージャアプリケーションを利用することができます。 それを利用するためには、${CATALINA_HOME}/conf/tomcat-users.xml で manager ロールを設定して、そのロールを持つ Tomcat のユーザーが必要になります。
manager ロールを持つ、j2deployer ユーザーをパスワードを j2deployer として設定した場合、そのtomcat-users.xml は次のようになります。
<tomcat-users> <role rolename="manager"/> <user username="j2deployer" password="j2deployer" roles="manager"/> </tomcat-users>
以上の設定は設定例であるので、実際に運用する場合などには、より適切なユーザー名とパスワードを使用してください。
上のように設定した場合は、build.properties に次のプロパティが必要になるので、tomcat-users.xml のユーザー名とパスワードを変更している場合は、前節で保存した build.properties にある値も併せて変更してください。
org.apache.jetspeed.services.autodeployment.user=j2deployer org.apache.jetspeed.services.autodeployment.password=j2deployer
Jetspeed2 のビルド
いよいよ、Jetspeed2 をビルドしていきます。Jetspeed2 は複数のコンポーネントから構成されているので、ビルドは、Maven の reactor を用いて、各コンポーネントを呼び出しビルドを実行しています。Jetspeed2 をビルドするために使われるゴールは、主に initMavenPlugin、allClean と allBuild の3つです。initMavenPlugin は Jetspeed2 のビルドで利用されるゴールをまとめたもので(将来、Maven2 に移行するために各ゴールの処理をプラグインに集約しています)、allClean は、その名の通り、各コンポーネントの clean を呼び出し、allBuild で各コンポーネントのビルドを実行しています。
Jetspeed2のポータルサーバー自身とすべてのコンポーネントを構築していくには、次のコマンドを実行します(すっきりビルドさせるために、allBuild する前に allClean を実行しておきます)。
$ maven initMavenPlugin allClean allBuild
initMavenPlugin で一度、Jetspeed2プラグインを Maven にインストールされれば、2回目以降は、allClean allBuild だけでも問題ありません。
マシンのスペックにもよりますが、ビルドには数分かかると思います。Maven を初めて実行する場合には、依存する多くの jar ファイルを Maven のリモートリポジトリからダウンロードするため、少し多く時間がかかるかもしれません。一度、Maven のローカルリポジトリに保存されると、次回以降の実行では、リモートリポジトリに取りに行くことはないので、安心してください(*- SNAPSHOT.jarはその対象から除かれているので、再度取得しにいきます)。あまりにダウンロードに時間がかかるような場合は、リモートリポジトリを用意して、build.properties に maven.repo.remote を設定して対応するのがよいでしょう。
現在では、デフォルトでテストをスキップするようになっています。その設定は、jetspeed-2 ディレクトリの project.properties 内で maven.test.skip プロパティで設定されています。もし、その値を false とした場合は、テスト用にデータベースを起動する必要があります(デフォルトでは、テストはスキップされるので起動する必要はありません)。HSQLを使用する場合は、allBuild ゴールの実行する前にHSQLを実行します。start.test.serverゴールを別の端末で実行してください。
$ maven j2:start.test.server
実行後、maven allClean allBuild の実行で、テストとビルドが実行されます。
TomcatへJetspeed2の配備
それでは、Jetspeed2 を配備していきましょう。Jetspeed2 は、Tomcat 5 または Tomcat 5.5 へ配備することができます。HSQL を使用しないなら、ステップ1は省略可能です。
1. HSQLを使用している場合は、次のゴールを実行して、HSQLを起動します。
$ maven j2:start.production.server __ __ | \/ |__ _Apache__ ___ | |\/| / _` \ V / -_) ' \ ~ intelligent projects ~ |_| |_\__,_|\_/\___|_||_| v. 1.0.2 build:start: start.production.server: [echo] ==================================== [echo] Production/Deployment Database [echo] ==================================== [java] server.properties not found, using command line or default properties [java] Opening database: ./src/database/hsql/Production [java] HSQLDB server 1.7.1 is running [java] Use SHUTDOWN to close normally. Use [Ctrl]+[C] to abort abruptly [java] Sat Jun 11 08:55:15 JST 2005 Listening for connections ...
2. (別のウィンドウまたは端末で)ビルドされたものを Tomcat に配備します。
$ cd $ cd svn/jetspeed-2 $ maven j2:quickStart
quickStart ゴールの実行で、必要なデータベースが作成されます。今回の場合は、HSQL の src/database/hsql/Production に必要な情報が書き込まれます。
3. Tomcatを起動して、ブラウザで次のURLにアクセスします。
http://localhost:8080/jetspeed
Jetspeed2 の配備後、初めてアクセスする場合には、各ポートレットの配備が実行されます。ポートレットが配備されるまでは、ポートレットが表示されませんので、しばらくおいて(1分くらい)再度、アクセスしてください。
4. Jetspeed2にログインするためには、ユーザー名: admin, パスワード: admin を利用してください。
最新の Jetspeed2 をビルド・実行はできたでしょうか?開発中のものを Subersion のリポジトリより取得しているので、場合によっては、ビルドエラーなどにあうかもしれません。そのときには、Apache の Jetspeed のメーリングリストなどを確認してみてください。または、jetspeed@yahoogroups.jp に日本語で投げてもらってもかまいません(^^)