目次

Version 2, last updated by jeppenejsum at Nov 27 20:17 UTC

このページの内容は、Jeppe Nejsum Madsen が自身のブログに投稿した記事のコピーです。

プロジェクトの作成は簡単で、github からプロジェクトをクローンするだけです。

$ git clone git@github.com:jeppenejsum/liftstart.git

これで、必要なすべてのファイルが github からフェッチされます。作成されたプロジェクトは、データベースサポートあり (H2 を使用) のベーシックな Lift アプリケーションです。ファイルは標準的なディレクトリ構造に従って配置されています。

Gradle は、プロジェクトで用意されているタスクを把握するために、build.gradle ファイルを読み取ります。このプロジェクトの build.gradle は非常にシンプルで、大まかに言えば、scala-tools.org リポジトリを追加し、プロジェクトのコンパイルとテストに必要な依存関係を指定しているだけです。

// Minimal build.gradle for Lift project (Lift プロジェクト用の最小限の build.gradle)

apply {
  plugin 'scala'
  plugin 'war'
  plugin 'jetty'
}

scalaVersion = '2.7.7'
liftVersion = '2.0-M4'

jettyRun.contextPath = "/"

repositories {
  mavenCentral()
  mavenRepo name:'scala-releases', urls:'http://scala-tools.org/repo-releases/'
}

dependencies {
  scalaTools "org.scala-lang:scala-compiler:$scalaVersion",
    "org.scala-lang:scala-library:$scalaVersion"

  compile "org.scala-lang:scala-library:$scalaVersion",
    "net.liftweb:lift-webkit:$liftVersion",
    "net.liftweb:lift-mapper:$liftVersion",
    "net.liftweb:lift-json:$liftVersion",
    "net.liftweb:lift-util:$liftVersion",
    "net.liftweb:lift-common:$liftVersion",
    "com.h2database:h2:1.1.117"

  testCompile "junit:junit:4.5",
    "org.scala-tools.testing:specs:1.6.1",
    "org.scala-lang:scala-compiler:$scalaVersion",
    'org.mortbay.jetty:jetty:6.1.22',
    'org.mortbay.jetty:jetty-util:6.1.22',
    'org.mortbay.jetty:jetty-management:6.1.22'

  providedCompile 'javax.servlet:servlet-api:2.5'
}

task wrapper(type: Wrapper) {
  gradleVersion = '0.9-preview-1'
}

タスクを実行するには、次の構文を使います。

$ ./gradlew taskName

このコマンドを実行すると、gradle がインストールされていない場合には gradle がインストールされ、ついで、ビルドスクリプトの中の指定されたタスクが実行されます。たとえば、プロジェクトをコンパイルして、ビルトイン Jetty Web サーバーで実行するには、次のコマンドを入力します。

$ ./gradlew jettyRun

コマンドを実行して、ブラウザで http://localhost:8080 にアクセスすると、次のような画面が表示されるはずです (コマンドを実行したときに、複数の SLF4J バインディングがあるという警告が表示されますが、これはビルトイン jettyRun タスクのバグなので無視してください)。

プロジェクトをパッケージ化してスタンドアロンの Web サーバーで実行できるようにする場合には、次のコマンドを実行すれば war ファイルを作成できます。

$ ./gradlew war

作成されたファイル build/libs/liftstart.war は、任意のサーブレットコンテナのアプリケーションディレクトリにコピーすることができます。