Java

ビルドと依存関係

複数ファイルと外部ライブラリを、Mavenで再現できる形に管理しましょう。

01

ビルドツールが必要な理由

ファイルが増えると、コンパイル順序、テスト、JAR作成、外部ライブラリの取得を毎回手作業で行うのは大変です。Mavenはpom.xmlに設定をまとめ、同じコマンドで再現します。

ソースコードコンパイルとテストJAR
02

標準的なフォルダー構成

構成TEXT
hello-app/
├── pom.xml
└── src/
    ├── main/java/com/example/App.java
    └── test/java/com/example/AppTest.java

本体とテストを分け、パッケージ名に合わせてフォルダーを作ります。App.javaの先頭にはpackage com.example;と書きます。

03

最小の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バージョンを確認してください。
04

コンパイル、テスト、JAR作成

よく使うコマンドCOMMAND
mvn compile
mvn test
mvn package

compileは本体をコンパイルし、testはテストを実行します。packageが成功するとtarget/hello-app-1.0.0.jarが作られます。

成功時の要点OUTPUT
Tests run: 2, Failures: 0, Errors: 0
BUILD SUCCESS
targetは生成物 target/は再生成できるため、通常はGitへ含めません。.gitignoreへ追加します。
05

依存関係を安全に管理する

追加前後の確認
  • 公式または信頼できる配布元か
  • 正しいgroupId、artifactId、バージョンか
  • ライセンスと更新状況に問題がないか
  • mvn dependency:treeで間接依存を確認したか
  • 更新後に全テストが成功するか
依存関係の確認COMMAND
mvn dependency:tree

ビルドツールはライブラリの安全性を保証しません。不要な依存を増やさず、脆弱性情報を確認して更新します。APIキーやパスワードをpom.xmlやソースへ書かないでください。

PRACTICE

ミニ課題:テスト付き計算機

Maven構成で四則演算クラスとJUnitテストを作り、mvn testmvn packageを成功させてください。0除算の扱いもテストします。