今回から何回かに分けて、Spring Bootを使ったWebアプリケーションの構築方法を連載します。
今回は手始めにプロジェクトの作成です。今回はビルドツールにGradleを使用します。
ビルドツールとしては、Ant, Maven, Gradleあたりが有名です。
Apache Ant
ビルドプロセスをXMLファイルに定義し、それに従ってビルドが実行されます。
もともとAntはライブラリの依存関係を解決する方法がありませんでしたが、後年、サブプロジェクトのApache Ivyで依存関係の管理が可能となりました。
ただ、ビルドプロセスを記述するXMLが冗長で読みにくく、Antに代わるMavenが登場したことから最近では使用されることが減っています。
Apache Maven
Apache Antに代わるビルドツールです。MavenもAntと同様、ビルド構成をXMLファイルに定義しますが、基本的なビルドだけであれば、依存ライブラリの定義だけを記述すればよく、Antに比べると記述量がかなり減ります。
ただ、ビルド構成のフォーマットが厳密で、Antに比べると自由度は低いです。
AntはXML形式でスクリプト(処理)を書く、MavenはXMLファイルで構成(定義)を書く感じです。
Gradle
Gradleは、基本的にはAntやMavenと同様、ライブラリの依存性管理と自動ビルドのためのツールです。
大きく違うのは、ビルド構成ファイルの形式がXMLファイルではなく、プログラミング言語のGroovyの構文に基づいています。
AntやMavenに比べて自由度が高く、ビルド構成ファイルも、それほど冗長ではありません。
さらに、プロジェクトのビルド構成だけではなく、プロジェクト自身の構成を管理することもできます。例えば、チーム開発でメンバーはgitなどからプロジェクトをチェックアウトしてEclipseに取り込むだけで、自動的にプロジェクトが設定され、チーム全員が同じ設定で開発を進めることができます。
GradleはMavenに比べると学習コストが高いです。今回は、Gradleプロジェクトを作る過程で必要となる手順や、Gradleの使い方を説明します。
1. 準備
開発環境としてEclipseを使用します。
EclipseからGradleを使う方法はいくつかありますが、Eclipse公式のプラグイン「Buildship: Gradle 用 Eclipse プラグイン」を使用します。インストールされていないのであれば、updateサイト、もしくはマーケットプレイスからインストールします。
「Buildship: Gradle 用 Eclipse プラグイン」を使用する場合、JDKのインストールディレクトリを環境変数「JAVA_HOME」に設定するか、Eclipse上で設定する必要があります。
Eclipseで設定する場合、メニュー[ウィンドウ] - [設定]で表示される設定ダイアログの[Gradle]の[Javaホーム]にJDKのインストールディレクトリを設定します。
2. プロジェクトの作成
EclipseからGradleプロジェクトを作成します。
メニュー[ファイル] - [新規] -[プロジェクト...]を選択します。プロジェクト作成ウィザードのダイアログが表示されるので、[Gradle] - [Gradleプロジェクト]を選択して、[次へ]ボタンをクリックします。
「ようこそ」が表示されるので、[次へ]ボタンをクリックします。
作成するGradleプロジェクトの名前の指定画面が表示されます。[プロジェクト名]にGradleプロジェクトの名前を入力して[完了]ボタンをクリックします。
しばらくすると、プロジェクトの作成が完了します。
2. 作成したプロジェクトの確認
作成されたプロジェクトを確認します。
使用するJavaのバージョンは、ワークスペースのデフォルトになります。今回は、Java13で進めていきます。
Mavenプロジェクトの標準構成と同様、以下のソースフォルダが作成されています。
サンプルコードの「Library.java」、「LibraryTest.java」も作成されています。
「プロジェクトと外部の依存関係」にはいくつかのライブラリが登録されています。
これらのライブラリはビルド構成ファイルである「build.gradle」に記載されているライブラリの依存関係に従って登録されています。
ビルド構成ファイル「build.gradle」は以下の内容で作成されます。
/* * This file was generated by the Gradle 'init' task. * * This generated file contains a sample Java Library project to get you started. * For more details take a look at the Java Libraries chapter in the Gradle * User Manual available at https://docs.gradle.org/6.0/userguide/java_library_plugin.html */ plugins { // Apply the java-library plugin to add support for Java Library id 'java-library' } repositories { // Use jcenter for resolving dependencies. // You can declare any Maven/Ivy/file repository here. jcenter() } dependencies { // This dependency is exported to consumers, that is to say found on their compile classpath. api 'org.apache.commons:commons-math3:3.6.1' // This dependency is used internally, and not exposed to consumers on their own compile classpath. implementation 'com.google.guava:guava:28.0-jre' // Use JUnit test framework testImplementation 'junit:junit:4.12' }
17行目の「dependencies」ブロック内にライブラリの依存関係が記載されています。
3. 次回予告
プロジェクト作成ウィザードで作成されたプロジェクトをカスタマイズする必要があります。
次回では、このプロジェクトの以下の点をカスタマイズして、Spring BootのWebプロジェクトとして使用できるようにします。
では、次回の「Spring Bootで作るWebアプリケーション② - Gradleプロジェクトの編集」でお会いしましょう!!