
Spring Bootでプロジェクトを作成すると、たくさんのファイルやフォルダが自動生成されます。 「これ、何に使うの?」「削除してもいいの?」と悩んだ経験はありませんか?
本記事では、Spring Bootプロジェクトでよく登場する構成ファイルやディレクトリの役割を、Gradle版・Maven版に分けて詳しく解説します。 「このファイル何?」を解消して、構造への理解を深めていきましょう。
🛠️ まずはビルドツールについて
Spring Bootのプロジェクトには、「ビルドツール」が欠かせません。これは、Javaのソースコードをコンパイルしたり、必要なライブラリを自動で取得したり、実行ファイル(JAR)を生成したりするためのツールです。
Spring Initializrでプロジェクトを作成する際にも「Gradle」または「Maven」のどちらかを選ぶことになります。 ここではその2つの代表的なビルドツールについて簡単に紹介します。
🐘 Gradleとは?
Gradleは、JavaやKotlinなどのプロジェクトで使用されるモダンなビルドツールです。XMLではなくGroovyやKotlin DSLで設定を書くため、柔軟でスクリプト的な表現が可能です。 特に大規模開発やマルチモジュールプロジェクトに強く、Spring Bootでも公式にサポートされています。
- 特徴:高速なビルド、柔軟な設定、インクリメンタルビルド対応
- 設定ファイル:
build.gradle
またはbuild.gradle.kts
🪶 Mavenとは?
Mavenは、Java界隈で長年使われてきた伝統的なビルドツールです。XMLベースで明確なルールに従ってプロジェクトを構成するため、構造がわかりやすく、学習コストが比較的低いのが特徴です。
- 特徴:標準化された構成、豊富なプラグイン、安定性の高さ
- 設定ファイル:
pom.xml
🗂️ プロジェクトのファイル構成
まずはGradleとMavenで生成されるファイル群を比較してみます。


上記のGradleとMavenの生成されるファイルの比較図から、Spring Initializrで生成されるファイルの中で、Gradle/Mavenを問わず共通して存在するフォルダや設定ファイルから見ていきましょう。
GradleとMavenの共通ファイルと共通ディレクトリ
ルート直下の共通ファイル
ファイル名 | 説明 |
---|---|
.gitignore | Gitで管理しないファイルやフォルダを指定する設定ファイル (例: /build/ , .gradle/ など) |
HELP.md | Spring Initializrが生成するプロジェクトの概要説明ファイル (削除しても問題なし) |
src/
ディレクトリ
パス | 説明 |
---|---|
src/main/java/ | Javaのソースコードを配置するメインの場所 |
src/main/resources/ | 設定ファイル・テンプレート・静的ファイルの格納場所 |
src/test/java/ | テストコード(JUnitなど)を記述する場所 |
Gradleで生成された構成
ルート直下の構成
パス | 説明 |
---|---|
build.gradle | Gradleのビルド設定ファイル(依存関係・プラグイン定義など) |
settings.gradle | プロジェクト名やマルチモジュール構成を定義 |
gradlew gradlew.bat | Gradle Wrapper 実行用スクリプト(OS別) |
gradle/wrapper/ | Wrapperの実行設定とJARファイルを格納 |
.gradle/ | キャッシュや一時ファイル(自動生成、Git管理対象外) |
実行後に生成されるディレクトリ
パス | 説明 |
---|---|
build/ | コンパイル後のclassファイル、実行用JAR、テストレポートなどを格納 |
build/libs/ | 実行可能なfat-JARがここに出力される |
build/reports/ | テストレポートやLint結果などの出力場所 |
Mavenで生成された構成
ルート直下の構成
パス | 説明 |
---|---|
pom.xml | Mavenの設定ファイル。依存関係やビルドプロセスを定義 |
mvnw mvnw.cmd | Maven Wrapper 実行用スクリプト(OS別) |
.mvn/wrapper/ | Wrapper設定ファイルとJARを含む(存在しない場合もあり) |
実行後に生成されるディレクトリ
パス | 説明 |
---|---|
target/ | ビルド後の成果物(classファイル、JARなど)を格納 |
target/classes/ | コンパイル済みのアプリ本体クラスが出力される |
target/test-classes/ | テストコードのclassが出力される |
build.gradle と pom.xml の基本と違い
Spring Bootでは、Gradleなら build.gradle
、Mavenなら pom.xml
というファイルに、依存関係の追加やビルドの設定などを記述します。プロジェクトの動作や外部ライブラリの管理に直結する、非常に重要なファイルです。それぞれの書き方は異なりますが、目的は共通です。
build.gradle
の基本例(Gradle)
plugins {
id 'org.springframework.boot' version '3.0.0'
id 'io.spring.dependency-management' version '1.1.0'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
pom.xml
の基本例(Maven)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
書き方の違いまとめ
項目 | Gradle(build.gradle) | Maven(pom.xml) |
---|---|---|
記述形式 | Groovy(またはKotlin)DSL | XML |
可読性・柔軟性 | 高い(スクリプト的に書ける) | 明確だが冗長になりやすい |
標準化・安定性 | カスタマイズ性に優れる | 標準化されており、企業案件でもよく使われる |
ファイル名 | build.gradle または build.gradle.kts | pom.xml |
よくある質問・誤解ポイントQ&A
build/
やtarget/
は削除していい?- OK、再ビルド時に再生成されます
.gradle/
や.mvn/
はGitに含める?- いいえ、
.gitignore
で除外します
- いいえ、
HELP.md
は必要?- 不要なら削除しても問題ありません
- 代わりにREADME.mdなどでプロジェクトの概要を記載しましょう
まとめ
Spring Bootプロジェクトには多くの自動生成ファイルがありますが、 その役割を把握しておくことで、 開発や設定ミスを防ぎ、保守性も格段に向上します。GradleとMavenで違いはありますが、src/
以下の基本構造や主要な設定ファイルは共通です。
各ファイルの機能を一通り知っておくだけで、「余計なところを触って動かなくなった…」といったトラブルを避けたり、必要な設定を素早く見つけたりすることができるようになります。実務に入った際にも「どこを修正すればよいか」が瞬時に判断できる力につながるので、最初に構成を理解しておくことは大きな財産です。
次回は、簡単なwebアプリケーションを作成し、ブラウザに「Hello Spring Boot!」と表示させるところまでを解説します。プロジェクトを“動かして実感”できる、最初のステップに進んでいきましょう!