ぺんぎんらぼ

お笑いとマンガ好きなしょぼしょぼWeb系エンジニアの日記です。たまに絵を描きます。

お笑いとマンガ好きなしょぼしょぼWeb系エンジニアの日記です

Spring Bootで作るWebアプリケーション① - Gradleプロジェクトの作成

今回から何回かに分けて、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形式でスクリプト(処理)を書く、MavenXMLファイルで構成(定義)を書く感じです。

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のインストールディレクトリを設定します。

f:id:penguinlabo:20200111204708p:plain

2. プロジェクトの作成

EclipseからGradleプロジェクトを作成します。
メニュー[ファイル] - [新規] -[プロジェクト...]を選択します。プロジェクト作成ウィザードのダイアログが表示されるので、[Gradle] - [Gradleプロジェクト]を選択して、[次へ]ボタンをクリックします。

f:id:penguinlabo:20200111205226p:plain

「ようこそ」が表示されるので、[次へ]ボタンをクリックします。

f:id:penguinlabo:20200111205314p:plain

作成するGradleプロジェクトの名前の指定画面が表示されます。[プロジェクト名]にGradleプロジェクトの名前を入力して[完了]ボタンをクリックします。

f:id:penguinlabo:20200111205453p:plain

しばらくすると、プロジェクトの作成が完了します。

2. 作成したプロジェクトの確認

作成されたプロジェクトを確認します。

f:id:penguinlabo:20200114121043p:plain

使用するJavaのバージョンは、ワークスペースのデフォルトになります。今回は、Java13で進めていきます。

Mavenプロジェクトの標準構成と同様、以下のソースフォルダが作成されています。

  • src/main/java
  • src/main/resources
  • src/test/java
  • src/test/resources

サンプルコードの「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プロジェクトとして使用できるようにします。

  • Javaプロジェクトを動的Webプロジェクトの構成に変更
  • Spring Bootライブラリの依存関係を定義
  • Javaのバージョンを変更

では、次回の「Spring Bootで作るWebアプリケーション② - Gradleプロジェクトの編集」でお会いしましょう!!