Gradle による Web アプリケーションの作り方

Gradle は、主に Java や Groovy, Kotlin, Scala などの言語でよく使われるビルドツール1である。 必要なライブラリーファイル(JAR ファイル)のダウンロードや、 コンパイル、テスト、サーバーへの配置などを自動的に行ってくれる。 また、プラグインで容易に拡張することができる。 ここでは、 Gretty という Web アプリケーションを開発するためのプラグインを利用する。

1ビルドツールとは
ソースファイルなどから最終生成目的物を生成するためのツールである。 ソースの依存関係に応じて、必要なコンパイルコマンドなどを呼び出す。 有名なものに、make, ant, maven, Gradle などがある。

ビルドファイル

Gradle のビルドの設定は Groovy もしくは Kotlin で記述する。 ここでは Kotlin 版を使用する。

いくつかの Servlet や HTML からなる単純な Web アプリケーションの場合、 以下のビルドファイル build.gradle.kts で事足りるようである。これを適当なディレクトリー (以下では OOPLGradle という名前だとして説明する)に置く。

ファイル build.gradle.kts

ディレクトリーの構成

Gradle では(Maven もだが)ディレクトリーの配置に独特の慣習があり、 Java のソースファイルは OOPLGradlesrc/main/java/ の下(のパッケージに応じたディレクトリー)に 配置する。

ファイル src/main/java/MyDate.java

OOPLGradle

gradle appRun

というコマンドを実行すると、(最初は JAR ファイルのダウンロードなども行うのでひじょうに時間がかかるかもしれないが) Tomcat あるいは Jetty が実行されるので、ブラウザーに「http://localhost:8080/OOPLGradle/MyDate」というアドレスを入力すると、 実行結果を見ることができる。

ポート 8080 は Gretty のデフォルトであり、OOPLGradle はディレクトリー名だが、build.gradle.kts の中の設定の httpPortcontextPath で変更することができる。

また、HTML や画像などの静的なリソースは src/main/webapp/ の下に配置する。

ファイル src/main/webapp/Aisatsu.html

ファイル src/main/java/Aisatsu.java

以上のファイルを配置して、 改めて gradle appRun したうえで、 ブラウザーに「http://localhost:8080/OOPLGradle/Aisatsu.html」と入力すると、 以下のようなフォームが表示される。

Aisatsu.html

Eclipse プロジェクトとして開く

OOPLGradle で一度、

gradle eclipse

というコマンドを実行すると、Eclipse 用の設定ファイルが生成されて、OOPLGradle を Eclipse のプロジェクトとして開くことができるようになる。以下でプロジェクトの encoding を UTF-8 にしておく。

なお、“Java compiler level does not match the version of the installed Java project facet.” というエラーがでる場合があるが、 対処方法は不明である。 ただ、編集するだけなら問題ないようである。(実行「gradle appRun」は Eclipse の外で行う必要がある。)

IntelliJ IDEA も Eclipse の設定ファイルを解釈できるので、 「gradle eclipse」したあとに、IntelliJ IDEA で Eclipse プロジェクトとして開くことも可能である。 「gradle eclipse」せずに Gradle プロジェクトとして開くこともできる。 あとは、各自でググること。


Koji Kagawa (kagawa@eng.〜)
(〜の部分はSPAM mail予防のため省略します。)