忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【Java】ビルドツール「Apache Maven(メイヴン)」の利用

Javaエンジニアへの登竜門、ビルドツール「Apache Maven(メイヴン)」に挑戦しました。最新のmacOS Sequoia環境で、インストールからエラーを乗り越えて「Hello World!」を拝むまでのプロセスを全公開します。

1. Mavenとは何か?

Mavenは、Javaプロジェクトの「ビルド(コンパイルなど)」や「ライブラリ管理」を自動化するツールです。これを使えるようになると、複雑な外部ライブラリの導入も pom.xml という設定ファイル一つで完結するようになります。

2. Mavenのインストール(Mac / Homebrew)

Macではパッケージ管理ツール Homebrew を使うのが最もスマートです。ターミナルで以下のコマンドを実行してインストールとバージョン確認を行います。

# Mavenをインストール
brew install maven

# 正常にインストールされたか確認
mvn -version
[ 今回の検証環境 ]
・OS:macOS Sequoia 15.6.1 (Apple Silicon)
・Java:25.0.1 (Homebrew経由)
・Maven:3.9.12

[ 実際の出力結果 ]
Apache Maven 3.9.12 (848fbb4bf2d427b72bdb2471c22fced7ebd9a7a1)
Java version: 25.0.1, vendor: Homebrew
OS name: "mac os x", version: "15.6.1", arch: "aarch64", family: "mac"

3. アーキタイプ(Archetype)でプロジェクトを作る

Mavenには「アーキタイプ(Archetype)」という強力な機能があります。これは一言でいうと「プロジェクトの金型(設計図)」です。コマンド一行で、Javaの標準的なフォルダ構成を自動生成できます。

mvn archetype:generate \
  -DgroupId=com.example \
  -DartifactId=my-app \
  -DarchetypeArtifactId=maven-archetype-quickstart \
  -DarchetypeVersion=1.4 \
  -DinteractiveMode=false

実行後、インターネットから必要な部品が次々とダウンロードされ、最後に BUILD SUCCESS と表示されれば my-app フォルダ内にプロジェクトが完成します。

4. 【要注意】コンパイルエラーの壁と解決策

プロジェクト作成後、mvn compile を実行したところ、以下のエラーに遭遇しました。

[ERROR] ソース・オプション7は現在サポートされていません。8以降を使用してください。

最新のJava 25を使っているにもかかわらず、アーキタイプがデフォルトで「Java 7」という古い設定を書き込んでしまったことが原因です。プロジェクト直下の pom.xml を開き、<properties> セクションを以下のように修正します。

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

5. 運命の実行:Hello World!

設定を修正したら、改めてコンパイルと実行を行います。Maven経由でJavaプログラムを起動できる exec:java コマンドが非常に便利です。

# ① コンパイル
mvn compile

# ② 実行
mvn exec:java -Dexec.mainClass="com.example.App"

ついにターミナル上に "Hello World!" の文字が表示されました。Mavenの「お作法」に則ってプログラムを動かすことができた瞬間です。


6. まとめ

・アーキタイプは「標準構成」を自動で提供してくれる便利な設計図。
・最新OSでのインストールはHomebrewを活用するのがベスト。
・Javaバージョンの不一致エラーは pom.xml の書き換えで解決可能。

ビルドツールの基礎を固めることで、今後のより複雑な開発にも「納得感」を持って取り組むことができそうです!


PR