ぺんぎんらぼ

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

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

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

前回はSpring Bootを使ったWebアプリケーションを構築すべく、EclipseからGradleプロジェクトを作成しました。

今回は、このプロジェクトを編集して、Webプロジェクトへの変更、Spring Bootの依存関係の追加をします。

1. 不要リソースの削除

作成したGradleプロジェクトには、サンプルのコードが含まれています。
src/main/javaの「Library.java」、src/test/javaの「LibraryTest.java」がサンプルのソースファイルです。
このコードは使用しないので、初めに削除します。

f:id:penguinlabo:20200201224248p:plain

2. Webリソースフォルダの作成

Webページや画像、CSSファイルなどを格納するWebリソースフォルダを作成します。
src/mainの下に「webapp」フォルダ、その下に「WEB-INF」フォルダを作成します。

f:id:penguinlabo:20200202005228p:plain

3. build.gradleファイルの編集

Eclipseで作成したbuild.gradleファイルを編集して以下の内容に変更します。

plugins {
    id 'java-library'
    id 'org.springframework.boot' version '2.2.4.RELEASE'
}
apply plugin: 'war'
apply plugin: 'eclipse-wtp'
apply plugin: 'io.spring.dependency-management'

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'

eclipse.wtp {
    component.contextPath = 'penguin-web'
    facet {
        facet name: 'jst.java', version: '1.8'
        facet name: 'wst.jsdt.web', version: '1.0'
        facet name: 'jst.web', version: '3.1'
    }
}

repositories {
    jcenter()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

次に、変更したbuild.gradleファイルの内容をプロジェクトに反映します。
プロジェクトのトップ(プロジェクト名の部分)、もしくはbuild.gradleの上で右クリックして、表示されたメニューの[Gradle] - [Gradleプロジェクトのリフレッシュ]をクリックします。
今後、build.gradleファイルを修正するたびに必要となる作業なので、この操作は覚えておきましょう。

しばらくすると、プロジェクトの設定が動的Webプロジェクトに変更されます。

4. プロジェクトの確認

設定が変更されたプロジェクトの内容を確認してみます。プロジェクトのプロパティから確認します。

Javaコンパイラ

f:id:penguinlabo:20200202014407p:plain

コンパイラ準拠レベルが「1.8」になっていることがわかります。
これは、build.gradleファイルの以下の内容が反映されているためです。

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

Javaのビルド・パス

f:id:penguinlabo:20200202015710p:plain

「ライブラリー」タブの「プロジェクトと外部の依存関係」を開くと、Spring Framework関係のライブラリが大量に追加されていることがわかります。
これは、build.gradleファイルの以下の内容により、必要なライブラリがすべて追加されるためです。

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

Webプロジェクトの設定

f:id:penguinlabo:20200202015013p:plain

「コンテキスト・ルート」が「penguin-web」になっています。 これは、build.gradleファイルの「eclipse.wtp」の「component.contextPath」で設定されたものになっています。

eclipse.wtp {
    component.contextPath = 'penguin-web'

プロジェクト・ファセット

f:id:penguinlabo:20200202013009p:plain

JavaJavaScript、動的Webモジュールにチェックが入っていることから、動的Webプロジェクトに変更されていることがわかります。
それぞれのバージョンは、build.gradleファイルの「eclipse.wtp.facet」で設定されたものになっていることがわかります。

eclipse.wtp {
    component.contextPath = 'penguin-web'
    facet {
        facet name: 'jst.java', version: '1.8'
        facet name: 'wst.jsdt.web', version: '1.0'
        facet name: 'jst.web', version: '3.1'
    }
}

デプロイメント・アセンブリ

f:id:penguinlabo:20200202014010p:plain

作成したフォルダ「src/main/webapp」がWeb公開ディレクトリである「/」にデプロイされるように設定されていることがわかります。

5. プロジェクトの文字コードセットの変更

Windows環境の場合、プロジェクトのデフォルトの文字コードセットがShift-JIS (正確にはWindows31-J)になっています。
このままだと、日本語文字を使用するときに問題になることがあるので、UTF-8に変更します。

プロジェクトのプロパティから変更します。

リソース

f:id:penguinlabo:20200202020750p:plain

build.gradleでも、Java文字コードセット、テストJavaコードの文字コードセットをUTF-8に設定しています。
しかし、残念ながら、この設定はeclipseには反映されません。この設定はgradleでビルドするときに使用される設定となります。

compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'

テキスト・ファイル・エンコード」が「コンテナーから継承」になっているので、「その他」を選択し、隣のプルダウンに「UTF-8」を選択します。

6. 次回予告

最低限のWebプロジェクトの設定は完了です。
いよいよ、次回以降で、このプロジェクトにプログラムを実装してSpring BootのWebアプリを構築していきます。

では、次回の「Spring Bootで作るWebアプリケーション③ - 画面遷移のあるWebアプリケーションの作成」でお会いしましょう!!