Spring Initializr で Gradle プロジェクトを作成してテストする
この記事の目次
Spring Initializr でプロジェクトを作ったら、IDE に頼る前に生成された Gradle Wrapper でテストします。生成、依存解決、JDK 互換性、アプリ起動を別々に確認すると、失敗箇所を絞れます。
この例は Boot 4.1.2、Java 17、Gradle Groovy のプロジェクトで、start.spring.ioにより2026年10月27日に実際に生成しました。Wrapper は Gradle 9.8.2 を選択しました。サービスの既定値や提供版は変わるため、この組み合わせが常に使えるとは限りません。
処理の流れ
Wrapper を実行する前に完全なアーカイブを生成します。コンテキストテストと、別に起動した HTTP アプリが確認する内容は異なります。
プロジェクトの設定を選ぶ
| 設定 | 例 | 意味 |
|---|---|---|
| Project / Language | Gradle - Groovy / Java | ビルドツールとソース言語 |
| Spring Boot | 4.1.2 | 生成時に利用できた正式リリース |
| Java / Packaging | 17 / Jar | ソースのツールチェーンとパッケージ形式 |
| Group / Artifact | example / demo | プロジェクトの識別子 |
| Package name | example.demo | アプリのパッケージ |
| Dependencies | Spring Web | HTTP エンドポイント用の依存関係 |
UI の Generate を押すか、この URL でアーカイブを取得します。各コマンドの成功を確認してから次を実行してください。 既存のプロジェクトを上書きしないよう、空の作業ディレクトリを使います。
curl --fail --show-error --location 'https://start.spring.io/starter.zip?type=gradle-project&language=java&bootVersion=4.1.2&baseDir=demo&groupId=example&artifactId=demo&name=Demo&packageName=example.demo&packaging=jar&javaVersion=17&dependencies=web' --output demo.zip
unzip demo.zip
cd demo
./gradlew --version
./gradlew test
サービスがある版の提供を終えると、生成 API がその版を拒否する場合があります。現行メタデータと Initializr リファレンスを確認し、互換性のある Boot、JDK、Gradle を組み合わせて選びます。説明なしに最新の既定値へ置き換えると再現条件が変わります。
生成された主要四ファイルを確認する
以下は書式を簡略化した主要四ファイルです。完全なアーカイブには Wrapper のスクリプト、JAR と設定、リソースもあります。この四ファイルだけを空のディレクトリにコピーしても ./gradlew はできません。
settings.gradle
rootProject.name = 'demo'
build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '4.1.2'
id 'io.spring.dependency-management' version '1.1.7'
}
group = 'example'
version = '0.0.1-SNAPSHOT'
java {
toolchain { languageVersion = JavaLanguageVersion.of(17) }
}
repositories { mavenCentral() }
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-webmvc'
testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.named('test') { useJUnitPlatform() }
src/main/java/example/demo/DemoApplication.java
package example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
src/test/java/example/demo/DemoApplicationTests.java
package example.demo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {}
}
生成された Boot 4.1.2 は spring-boot-starter-webmvc と spring-boot-starter-webmvc-test を使います。異なる世代の断片を混ぜず、選んだリリースが生成する設定を起点にします。Boot 4.1.2 の要件は Java 17 以降と、Gradle 8.x(8.14 以降)または 9.x です。
テストとアプリ起動を区別する
contextLoads() が通るのはテストのコンテキストが起動するという意味です。まだコントローラーがなければ、/ の 404 は起動失敗を意味しません。アプリを別に実行し、その端末で Ctrl+C を押して止めます。
./gradlew bootRun
生成された build.gradle と Gradle Wrapper のファイルを一緒にコミットします。Gradle の版は java.toolchain の Java バージョンとは別です。./gradlew --version で Gradle を動かす JVM を調べ、コンパイルやアプリ実行に選ぶ JDK と区別します。
続いて IntelliJ でプロジェクトを開き HTTP を提供する手順へ進みます。Boot と Framework の版番号が異なる理由は Spring Boot のリリース履歴とバージョン関係を参照してください。
コメント