前回はJUnit5とMavenを使ったユニットテストを学びました。 今回は「ビルドツール」について解説します。 Mavenはすでにインストール済みなので、MavenとGradleそれぞれの基本的な使い方と違いを理解し、実際の開発でどう活用するかを学びましょう。
ビルドツールとは
これまでのサンプルでは javac でコンパイルし、java で実行するという手順を1つずつ手動で行ってきました。しかし実際のプロジェクトでは、複数のファイルのコンパイル・外部ライブラリの管理・テストの実行・JARファイルの作成など、さまざまな作業が発生します。
「ビルドツール」はこれらをまとめて自動化するためのツールです。Javaでよく使われるビルドツールは以下の2つです。
Maven: 設定をXML(pom.xml)で管理する。歴史が長く安定しているGradle: 設定をGroovyまたはKotlinで管理する。柔軟で高速
Mavenの基本
前回JUnitの記事でMavenプロジェクトを作成しました。Mavenプロジェクトは以下のような構成になっています。
junit-sample/
├── pom.xml // プロジェクト設定ファイル
└── src/
├── main/
│ └── java/
│ └── com/example/ // 本番コード
└── test/
└── java/
└── com/example/ // テストコード
pom.xml はMavenプロジェクトの設定ファイルで、プロジェクト情報・依存するライブラリ・ビルド設定などを記述します。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId> <!-- 組織・会社のID(逆ドメイン形式が慣例) -->
<artifactId>junit-sample</artifactId> <!-- プロジェクト名 -->
<version>1.0-SNAPSHOT</version> <!-- バージョン -->
<dependencies>
<!-- ここに使用するライブラリを追記する -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.11.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
よく使うMavenコマンドは以下の通りです。
mvn compile // ソースコードをコンパイルする
mvn test // テストを実行する
mvn package // JARファイルを作成する
mvn clean // ビルド成果物を削除する
mvn clean package // クリーンしてからJARファイルを作成する
サンプル(Mavenプロジェクトの構成)
前回作成した junit-sample フォルダで以下のコマンドを試してみましょう。
cd junit-sample
mvn compile

実行結果は次のようになります。
[INFO] Scanning for projects...
[INFO] --- maven-compiler-plugin:3.13.0:compile ---
[INFO] Compiling 1 source file with javac [debug release 8] to target/classes
[INFO] BUILD SUCCESS

次にJARファイルを作成してみます。
mvn package

成功すると target/ フォルダに junit-sample-1.0-SNAPSHOT.jar が作成されます。
[INFO] Building jar: /Users/panmaru/.../target/junit-sample-1.0-SNAPSHOT.jar
[INFO] BUILD SUCCESS

Gradleの基本
GradleはMavenより後発のビルドツールで、設定をプログラムのように書けるのが特徴です。まずインストールします。
brew install gradle

インストール確認をします。
gradle -version

Gradleプロジェクトは以下のコマンドで作成します。
mkdir gradle-sample
cd gradle-sample
gradle init --type java-application --dsl groovy


GradleプロジェクトのフォルダはMavenと同じような構成ですが、設定ファイルが pom.xml ではなく build.gradle になります。
gradle-sample/
├── build.gradle // プロジェクト設定ファイル
├── settings.gradle // プロジェクト名などの設定
└── src/
├── main/java/ // 本番コード
└── test/java/ // テストコード
build.gradle の中身はMavenのXMLよりもシンプルです。
plugins {
id 'java'
id 'application'
}
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter:5.11.0'
}
application {
mainClass = 'com.example.App'
}
よく使うGradleコマンドは以下の通りです。
gradle compileJava // ソースコードをコンパイルする
gradle test // テストを実行する
gradle build // コンパイル・テスト・JARファイル作成をまとめて行う
gradle clean // ビルド成果物を削除する
gradle run // アプリを実行する
MavenとGradleの比較
Maven Gradle
設定ファイル pom.xml(XML) build.gradle(Groovy/Kotlin)
設定の書きやすさ 冗長になりがち シンプルで読みやすい
ビルド速度 普通 高速(キャッシュが効く)
安定性 非常に高い 高い
普及率 非常に高い 高い(特にAndroid開発)
学習コスト 低め やや高め
どちらを使うかはプロジェクトや職場によって異なります。Androidアプリ開発ではGradleが標準で、WebアプリやJavaの業務システムではMavenが多く使われています。
コードの解説
ビルドツールの最大のメリットは「依存関係の管理」です。これまではライブラリのJARファイルを手動でダウンロードして指定する必要がありましたが、pom.xml や build.gradle にライブラリ名とバージョンを書くだけで、ビルドツールが自動的にインターネットからダウンロードして使えるようにしてくれます。
mvn package や gradle build でJARファイルを作ることで、作成したプログラムを他の人に配布したり、サーバーにデプロイしたりすることができます。
<scope>test</scope> (Maven)や testImplementation (Gradle)は、そのライブラリをテスト時だけ使うという指定です。本番のJARファイルには含まれません。JUnitをこの設定で追加しているのはそのためです。
まとめ
ビルドツールを使うことで、コンパイル・テスト・JARファイル作成・ライブラリ管理を自動化できます。MavenはXMLで設定を書き安定性が高く、GradleはGroovyで設定を書きビルドが高速という違いがあります。どちらも src/main/java に本番コード、src/test/java にテストコードを置くという構成は共通です。実際の開発現場ではほぼ必ずどちらかのビルドツールが使われているため、基本的な使い方を覚えておくと大きな力になります。
2026/07/14(火) ぱんまる


コメント