4
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GradleでSpringBootプロジェクトを始める

Last updated at Posted at 2020-04-29

環境

Windows10 64bit
JDK 11

Spring Initializrからひな形をダウンロード

まずは、下記のページからSpringプロジェクトのひな形をダウンロードする。
画像のように、Mavenではなく、Gradleにチェックを入れておく。

image.png

ダウンロードして、展開したディレクトリは下記のようになっている。


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2020/04/29     23:48                gradle
d-----        2020/04/29     23:48                src
-a----        2020/04/29     23:48            341 .gitignore
-a----        2020/04/29     23:48            509 build.gradle
-a----        2020/04/29     23:48           5764 gradlew
-a----        2020/04/29     23:48           3056 gradlew.bat
-a----        2020/04/29     23:48            469 HELP.md
-a----        2020/04/29     23:48             26 settings.gradle

Gradle関係のディレクトリ・ファイル

プロジェクト内には、下記のようなGradle関連のファイル・ディレクトリが含まれている。

  • .gradle ... Gradleが生成するキャッシュが保存されているディレクトリ
  • gradle ... Gradleラッパーの設定ファイル / Jarファイルが配置されているディレクトリ
  • build.gradle ... ビルドスクリプト、大体これを触ることになる
  • gradlew ... Gradleラッパーのシェルスクリプト
  • gradlew.bat ... Gradleラッパーのバッチファイル
  • settings.gradle ... マルチプロジェクト時のビルドに必要な設定ファイル

Gradleラッパー

Spring Initializrを使う場合は、すでにプロジェクトにGradle Wrapperが含まれている。
なので、開発者がGradleそのものを手動でインストールする必要はない。
DLしたプロジェクトをIntellijなどのIDEで開くと、自動で所定のバージョンのGradleがインストールされる。
こうした配布の仕方をすることで、チームで使用されるGradleのバージョンを統一することができる。

IntelliJへの統合

IntelliJのGradleプラグインはデフォルトでインストールされているので、IDEのプラグインの追加は不要。
画面右側にGradleタブがあり、Gradle周りの操作はIntelliJ内で完結させることができる。
下のようにタスク一覧が表示されており、象さんマークのボタンから各タスクを実行することができる。

image.png

ビルドスクリプト

build.gradle

plugins {
  id 'org.springframework.boot' version '2.2.6.RELEASE'
  id 'io.spring.dependency-management' version '1.0.9.RELEASE'
  id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
  mavenCentral()
}
dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
  testImplementation('org.springframework.boot:spring-boot-starter-test') {
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
  }
}
test {
  useJUnitPlatform()
}

プラグイン


plugins {
	id 'org.springframework.boot' version '2.2.6.RELEASE'
	id 'io.spring.dependency-management' version '1.0.9.RELEASE'
	id 'java'
}

build.gradleを見ると、上記のようにプラグインが最初から導入されている。
Gradleのプラグインとは、開発でよく使われるタスクを予め定義してくれている拡張のこと。
例えば、javaプラグインであれば、ビルド、テスト、Javadocの生成などのタスクを予め用意してくれる。
下記のページで様々なプラグインが公開されているが、もちろんプラグインを自作することも可能。

リポジトリ

repositories {
  mavenCentral()
}

Gradleはライブラリの依存関係を外部・内部のリポジトリから取得する。
上記では、mavenCentralを指定しているので、依存関係を追加した場合はここから取得することになる。
他にもjCentergoogleのリポジトリなどもあるので、そちらを指定することもできる。
リポジトリ間の優先順位を決めておいて、Aにない場合はBから取得という指定の仕方もできる。
Nexus等を利用し自前で建てたプライベートリポジトリを指定することも可能。

依存関係

デフォルトでは下記のようになっている。


dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web'
  testImplementation('org.springframework.boot:spring-boot-starter-test') {
    exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
  }
}

implementationはアプリケーションのソースをコンパイルする時に必要な依存関係。
testImplementationはテストソースをコンパイルし、テスト実行するのに必要な依存関係。
他にも様々なコンフィグレーションの依存関係を設定することができる。
build.gradleに依存関係を追加すると、IntelliJが変更を検出し、リポジトリから依存関係を取得する。

テスト

test {
  useJUnitPlatform()
}

最初は上記のようになっており、テストを実行すると全てのテストが走る状態。
useJUnitPlatformブロック内で、JUnitの機能を使用し、テストの細かな制御を行うことができる。
例えば、特定のタグが付けられたテストメソッドをincludeしたり、excludeしたりできる。

4
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?