「このファイル何?」をなくす!Spring Boot構成ファイルの基礎知識(Gradle & Maven)【Spring Boot】

  • LINEで送る
「このファイル何?」をなくすSpring Boot構成ファイルの基礎知識Gradle-Maven

 Spring Bootでプロジェクトを作成すると、たくさんのファイルやフォルダが自動生成されます。 「これ、何に使うの?」「削除してもいいの?」と悩んだ経験はありませんか?

 本記事では、Spring Bootプロジェクトでよく登場する構成ファイルやディレクトリの役割を、Gradle版・Maven版に分けて詳しく解説します。 「このファイル何?」を解消して、構造への理解を深めていきましょう

🛠️ まずはビルドツールについて

 Spring Bootのプロジェクトには、「ビルドツール」が欠かせません。これは、Javaのソースコードをコンパイルしたり、必要なライブラリを自動で取得したり、実行ファイル(JAR)を生成したりするためのツールです。

 Spring Initializrでプロジェクトを作成する際にも「Gradle」または「Maven」のどちらかを選ぶことになります。 ここではその2つの代表的なビルドツールについて簡単に紹介します。

🐘 Gradleとは?

 Gradleは、JavaKotlinなどのプロジェクトで使用されるモダンなビルドツールです。XMLではなくGroovyやKotlin DSLで設定を書くため、柔軟でスクリプト的な表現が可能です。 特に大規模開発やマルチモジュールプロジェクトに強く、Spring Bootでも公式にサポートされています。

  • 特徴:高速なビルド、柔軟な設定、インクリメンタルビルド対応
  • 設定ファイル:build.gradle または build.gradle.kts

🪶 Mavenとは?

 Mavenは、Java界隈で長年使われてきた伝統的なビルドツールです。XMLベースで明確なルールに従ってプロジェクトを構成するため、構造がわかりやすく、学習コストが比較的低いのが特徴です。

  • 特徴:標準化された構成、豊富なプラグイン、安定性の高さ
  • 設定ファイル:pom.xml

🗂️ プロジェクトのファイル構成

まずはGradleとMavenで生成されるファイル群を比較してみます。

Gradleで作られたSpringBootプロジェクト
Mavenで作られたSpringBootプロジェクト

 上記のGradleとMavenの生成されるファイルの比較図から、Spring Initializrで生成されるファイルの中で、Gradle/Mavenを問わず共通して存在するフォルダや設定ファイルから見ていきましょう。

GradleとMavenの共通ファイルと共通ディレクトリ

ルート直下の共通ファイル

ファイル名説明
.gitignoreGitで管理しないファイルやフォルダを指定する設定ファイル
(例:/build/, .gradle/ など)
HELP.mdSpring Initializrが生成するプロジェクトの概要説明ファイル
(削除しても問題なし)

src/ ディレクトリ

パス説明
src/main/java/Javaのソースコードを配置するメインの場所
src/main/resources/設定ファイル・テンプレート・静的ファイルの格納場所
src/test/java/テストコード(JUnitなど)を記述する場所

Gradleで生成された構成

ルート直下の構成

パス説明
build.gradleGradleのビルド設定ファイル(依存関係・プラグイン定義など)
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.xmlMavenの設定ファイル。依存関係やビルドプロセスを定義
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)DSLXML
可読性・柔軟性高い(スクリプト的に書ける)明確だが冗長になりやすい
標準化・安定性カスタマイズ性に優れる標準化されており、企業案件でもよく使われる
ファイル名build.gradle または build.gradle.ktspom.xml

よくある質問・誤解ポイントQ&A

  • build/target/ は削除していい?
    • OK、再ビルド時に再生成されます
  • .gradle/.mvn/ はGitに含める?
    • いいえ、.gitignoreで除外します
  • HELP.md は必要?
    • 不要なら削除しても問題ありません
    • 代わりにREADME.mdなどでプロジェクトの概要を記載しましょう

まとめ

 Spring Bootプロジェクトには多くの自動生成ファイルがありますが、 その役割を把握しておくことで、 開発や設定ミスを防ぎ、保守性も格段に向上します。GradleとMavenで違いはありますが、src/ 以下の基本構造や主要な設定ファイルは共通です。

 各ファイルの機能を一通り知っておくだけで、「余計なところを触って動かなくなった…」といったトラブルを避けたり、必要な設定を素早く見つけたりすることができるようになります。実務に入った際にも「どこを修正すればよいか」が瞬時に判断できる力につながるので、最初に構成を理解しておくことは大きな財産です。

 次回は、簡単なwebアプリケーションを作成し、ブラウザに「Hello Spring Boot!」と表示させるところまでを解説します。プロジェクトを“動かして実感”できる、最初のステップに進んでいきましょう!

最新の投稿

SNSでもご購読できます。

コメントを残す