目次

Version 6, last updated by dmclean62 at Dec 02 21:56 UTC

まずはアウトラインから始めて、本文の方は時間があるときに書き起こしていきます。

Maven や SBT を使わない場合のライブラリの管理

Maven と SBT では可能で、Ant ではできないことは、必要なライブラリの正しいバージョンを適切な Maven リポジトリから自動的にダウンロードしてくることです。Scala コミュニティでは Maven と SBT の方がよく使われているため、従来からあるようなダウンロード&インストールパッケージは Lift には存在しません。Maven リポジトリにアクセスして、すべて手動でダウンロードする必要があります。しかも残念なことに、これをコンポーネントごとに行なう必要があります。

リポジトリには、コンポーネント名_scalaのバージョンという形式のサブディレクトリがたくさんあります。これらのサブディレクトリの中に、Lift のリリース番号の付いたサブディレクトリがあり、このサブディレクトリに特定コンポーネントの特定バージョンのソース jar とバイナリ jar が置かれています。筆者が現在使っているコンポーネントは、次のとおりです。

  • lift-actor_2.8.0-2.1.jar
  • lift-common_2.8.0-2.1.jar
  • lift-json_2.8.0-2.1.jar
  • lift-mapper_2.8.0-2.1.jar
  • lift-util_2.8.0-2.1.jar
  • lift-webkit_2.8.0-2.1.jar

その他のライブラリ

依存関係を手動で管理するのは必ずしも筆者の好みではありませんが、Ant を使う場合はほかに方法はありません。

筆者がよく使う 1 つの方法は、“hibernate.jar” のようにバージョン情報を付けずに標準的なファイル名ですべての jar ファイルを 1 箇所にコピーする方法です。そしてこれらの jar ファイルを VCS で管理します。こうすれば、非常に簡単にビルドを実行することができます。この方法は便利なのですが、言うまでもなく、ファイル名を見てもどのバージョンが使われているわかりません (また、多くの VCS システムでは、バイナリを登録するとリポジトリが膨れ上がります)。

筆者が好んでいるのは、すべてのライブラリを置くディレクトリを別に分けておく方法です。このディレクトリの名前は何でもかまいません。Ant のビルドファイルでは、ビルドファイルの外部で定義されるプロパティ (extHome) を使ってこのディレクトリを参照します。筆者はほとんどの場合、何も手を加えずに配布パッケージ全体をこの場所に置くだけです。実際の手間もほとんどない上に、大半の Java ライブラリパッケージはディレクトリ名にバージョン番号が付いているので、各ライブラリのどのバージョンが使われているかもすぐわかります。こうしておいてから、各 jar のプロパティ定義を Ant の build.xml ファイルに追加します。同一のパッケージで jar の定義をたくさん書く場合には、“libHome” のような変数を使います。


    <!-- Location of Liftweb files -->
    <property name="liftHome" value="${extHome}/lift-2.1/lib"/>
    <property name="lift-actor.jar" value="${liftHome}/lift-actor_2.8.0-2.1.jar"/>
    <property name="lift-common.jar" value="${liftHome}/lift-common_2.8.0-2.1.jar"/>
    <property name="lift-json.jar" value="${liftHome}/lift-json_2.8.0-2.1.jar"/>
    <property name="lift-mapper.jar" value="${liftHome}/lift-mapper_2.8.0-2.1.jar"/>
    <property name="lift-util.jar" value="${liftHome}/lift-util_2.8.0-2.1.jar"/>
    <property name="lift-webkit.jar" value="${liftHome}/lift-webkit_2.8.0-2.1.jar"/>

ライブラリによっては、(ディレクトリ名だけでなく) jar ファイル名にライブラリのバージョン番号が付いていますが、この場合にはライブラリのアップグレードには手間がかかります。

Ant ビルドファイルの作成

Scala ソースのコンパイル

Java と Scala が混在する環境

WAR ファイルのビルド