ビルド方法

ビルド方法

ここでは、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 に日本語で投げてもらってもかまいません(^^)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です