📝

Gradle を使った Java のビルド環境構築

2024/11/24に公開

これを書く背景

学習のためにシンプルな Java 開発環境が欲しくなったが、ビルドツールってどうやって使えるようにするんだっけ?と躓いてしまった。
Java で何か作ろうとするとき、普段は Spring Initializer を使ってプロジェクトの初期化をしているので、ビルドツールを手動でインストールして~ということをしてこなかったからかもしれません。
今さらこんなことで躓くなんて、正直恥ずかしい気持ちになったが、ログに残す良い機会とも思い、ここにその方法を残しておきます。

環境

WSL2
仕事は Mac だが家の PC は Windows。妻も使うことがあるので(こういう人って結構いるのかな?)。

手順

1. SDKMAN のインストール

https://sdkman.io/
正式名称は The Software Development Kit Manager です。
Gradle 公式サイトの Gradle インストール方法に SDKMAN を使用した方法が記載されているので、これに従い、まず SDKMAN をインストールします。
SDKMAN 公式のインストール方法は こちら
ただし、上記ページ内にも記載されていますが zip と unzip が必要なので、もしインストールしてなければ以下を実行します。

sudo apt install zip unzip

2. Gradle のインストール

Gradle 公式サイトに従ってコマンドを実行します。
https://gradle.org/install/#with-a-package-manager

3. Gradle プロジェクトの作成

プロジェクトのルートにしたいディレクトリに移動して以下コマンドを実行します。

gradle init

これの詳細は公式サイトが詳しいですが、とりあえず上記のコマンドだけで実行。そのあとインタラクティブに type を指定することができます。どれを選択したかによる結果の違いは以下のサイトが詳しいです。
https://qiita.com/ykdevs/items/5bcd5140e863c8fefb45

終わりに

これで完了です。まとめてみるとシンプルですが、いちいち確認しながらだと時間がかかりました。
念のため JUnit5 を build.gradle に追加してみました。

dependencies {
    // Use JUnit test framework.
    testImplementation 'org.junit.jupiter:junit-jupiter:5.9.3'
}

こんなテストクラスを作成。

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

class MoneyTest {

    @Test
    public void testMultiplication() {
        Dollar five = new Dollar(5);
        five.times(2);
        assertEquals(10, five.amount);
    }
}

大丈夫そう!

ちなみに

Spring Initializer で Gradle を選択した場合はなぜこのような手順が不要なのか ChatGPT に簡潔に説明してもらった。

Spring InitializrでGradleを選択すると、プロジェクトにGradle Wrapperが自動的に追加されるため、ローカルでGradleをインストールする必要がありません。Gradle Wrapperは初回実行時に必要なGradleバージョンを自動でダウンロードして使用します。

なるほどー。
Gradle Wrapper の公式サイトには以下が書かれています。

Gradleビルドを実行する際の推奨方法は、Gradle Wrapper(以下「Wrapper」)を使用することです。
Wrapperは、指定されたバージョンのGradleを呼び出すスクリプトで、必要に応じて事前にダウンロードします。その結果、開発者は迅速にGradleプロジェクトを開始できます。

勉強になりました。

Discussion