Apache Mavenの基本概念
Apache Mavenは、Javaプロジェクトを管理しビルドするための強力なツールです。Mavenはプロジェクトの依存関係管理、ビルドプロセスの標準化、ドキュメント生成といった機能を提供します。このガイドでは、Mavenの基本的な使い方を段階的に説明します。
1. Mavenのインストール
- Mavenのダウンロード:
Maven公式サイトから最新版をダウンロードします。
- Mavenの展開:
ダウンロードしたファイルを指定ディレクトリ(例: /opt/maven や C:\maven)に展開します。
- 環境変数の設定:
MavenのbinディレクトリをシステムのPATH環境変数に追加します。
- Linux/macOS:
export PATH=/opt/maven/bin:$PATH
- Windows:
システム環境変数に C:\maven\bin を追加します。
- Linux/macOS:
- インストールの確認:
ターミナルまたはコマンドプロンプトを開き、以下のコマンドを実行します。
mvn -v
Mavenのバージョン情報が表示されれば、インストールは成功です。
2. Mavenプロジェクトの作成
- Archetypeを使用したプロジェクト生成:
以下のコマンドを実行してシンプルなMavenプロジェクトを生成します。
mvn archetype:generate -DgroupId=com.sample -DartifactId=sample-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
groupId: プロジェクトの組織識別子(例: com.sample)artifactId: プロジェクト名(例: sample-project)archetypeArtifactId: 使用するテンプレート(例: maven-archetype-quickstart)
- プロジェクト構造:
生成されたプロジェクト構造は以下の通りです。
sample-project ├── pom.xml └── src ├── main │ └── java │ └── com │ └── sample │ └── App.java └── test └── java └── com └── sample └── AppTest.java
3. pom.xmlの理解
pom.xmlはMavenプロジェクトの中核設定ファイルであり、プロジェクトのメタデータ、依存関係、ビルド設定を定義します。以下はシンプルなpom.xmlの例です。
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>sample-project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
4. プロジェクトのビルド
- プロジェクトのコンパイル:
以下のコマンドを実行してプロジェクトをコンパイルします。
mvn compile
- テストの実行:
以下のコマンドを実行して単体テストを実行します。
mvn test
- プロジェクトのパッケージング:
以下のコマンドを実行してプロジェクトをJARファイルにパッケージします。
mvn package
生成されたJARファイルは
targetディレクトリに配置されます。 - ローカルリポジトリへのインストール:
以下のコマンドを実行してプロジェクトをローカルMavenリポジトリにインストールします。
mvn install
5. プロジェクトの実行
- JARファイルの実行:
生成されたJARファイルを実行するには、以下のコマンドを使用します。
java -cp target/sample-project-1.0-SNAPSHOT.jar com.sample.App
6. 依存関係の追加
pom.xmlへの依存関係の追加:例として、Apache Commons Lang依存関係を追加します。
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency>- プロジェクトの再ビルド:
以下のコマンドを実行してプロジェクトを再ビルドし、依存関係をダウンロードします。
mvn clean install
7. 主なMavenコマンド
| コマンド | 説明 |
|---|---|
mvn clean |
プロジェクトのクリーンアップ(targetディレクトリの削除) |
mvn compile |
プロジェクトのソースコードをコンパイル |
mvn test |
単体テストの実行 |
mvn package |
プロジェクトのパッケージング(JAR/WARファイルの生成) |
mvn install |
プロジェクトをローカルリポジトリにインストール |
mvn deploy |
プロジェクトをリモートリポジトリにデプロイ |
mvn dependency:tree |
プロジェクトの依存関係ツリーの表示 |
8. Mavenのプラグイン活用
Mavenのビルドプロセスをカスタマイズするには、プラグインを使用します。以下はJavaコンパイラプラグインの設定例です。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
9. リソースファイルの管理
プロジェクトにリソースファイルを追加するには、src/main/resourcesディレクトリに配置します。MavenはこれらのファイルをJARに自動的に含めます。
sample-project
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── sample
│ │ └── App.java
│ └── resources
│ └── config.properties
└── test
└── java
└── com
└── sample
└── AppTest.java
10. 複数プロジェクトの管理
複数の関連プロジェクトを管理するには、マルチモジュールプロジェクトを使用します。親POMの例を以下に示します。
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>parent-project</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>module1</module>
<module>module2</module>
</modules>
</project>
まとめ
このガイドでは、Apache Mavenの基本的な使い方を学びました。Mavenの依存関係管理やプラグインメカニズムといった強力な機能を活用することで、開発効率を大幅に向上させることができます。さらに高度な機能についても学習し、Mavenの全ての可能性を活かしてください。