ビルドツールが必要な理由
ファイルが増えると、コンパイル順序、テスト、JAR作成、外部ライブラリの取得を毎回手作業で行うのは大変です。Mavenはpom.xmlに設定をまとめ、同じコマンドで再現します。
ソースコード→コンパイルとテスト→JAR
標準的なフォルダー構成
構成TEXT
hello-app/
├── pom.xml
└── src/
├── main/java/com/example/App.java
└── test/java/com/example/AppTest.java本体とテストを分け、パッケージ名に合わせてフォルダーを作ります。App.javaの先頭にはpackage com.example;と書きます。
最小のpom.xml
Java 21を使う設定とJUnit 5のテスト依存を記述します。バージョンはプロジェクトで固定し、更新時は変更内容とテスト結果を確認します。
pom.xmlXML
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>hello-app</artifactId>
<version>1.0.0</version>
<properties>
<maven.compiler.release>21</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.11.4</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>バージョンについて この値は講座の構成例です。新規プロジェクトでは公式情報で安定版と対応Javaバージョンを確認してください。
コンパイル、テスト、JAR作成
よく使うコマンドCOMMAND
mvn compile
mvn test
mvn packagecompileは本体をコンパイルし、testはテストを実行します。packageが成功するとtarget/hello-app-1.0.0.jarが作られます。
成功時の要点OUTPUT
Tests run: 2, Failures: 0, Errors: 0
BUILD SUCCESStargetは生成物
target/は再生成できるため、通常はGitへ含めません。.gitignoreへ追加します。依存関係を安全に管理する
追加前後の確認
- 公式または信頼できる配布元か
- 正しいgroupId、artifactId、バージョンか
- ライセンスと更新状況に問題がないか
mvn dependency:treeで間接依存を確認したか- 更新後に全テストが成功するか
依存関係の確認COMMAND
mvn dependency:treeビルドツールはライブラリの安全性を保証しません。不要な依存を増やさず、脆弱性情報を確認して更新します。APIキーやパスワードをpom.xmlやソースへ書かないでください。
ミニ課題:テスト付き計算機
Maven構成で四則演算クラスとJUnitテストを作り、mvn test、mvn packageを成功させてください。0除算の扱いもテストします。