Mavenのインストールと使用方法
Mavenとは
Mavenは、Java言語を中心としたプロジェクトのビルド自動化ツールです。
ビルドプロセスの明確化、プロジェクト情報の統一、プロジェクトの依存関係管理といった機能を提供し、開発者がプロジェクトの構築や依存関係の解決に要する時間を大幅に削減できます。
Mavenのインストール方法
Javaのインストール
Java Development Kit (JDK)がインストールされていない場合、JDKをダウンロードしてインストールします。
インストール後、環境変数JAVA_HOME
を設定し、JDKがインストールされているディレクトリを指定します。
Mavenのインストール
Apache Mavenの公式ウェブサイトからBinary zipファイルをダウンロードします。
ダウンロードしたzipファイルを解凍し、任意のディレクトリ(例:C:\Program Files\Maven
)に配置します。
環境変数の設定
システムの環境変数に、M2_HOME
とMAVEN_HOME
を設定し、それぞれにMavenをインストールしたディレクトリのパス(例:C:\Program Files\Maven\apache-maven-x.x.x
)を設定します。
環境変数のPath
に、Mavenのbinディレクトリのパス(例:C:\Program Files\Maven\apache-maven-x.x.x\bin
)を追加します。
Mavenのインストール確認
コマンドプロンプトで「mvn -v
」を実行しバージョンが表示されることを確認します。
> mvn -v
Apache Maven X.X.X
Maven home: C:\Program Files\Maven\apache-maven-x.x.x\
Java version: X.X.X
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
Mavenの使用方法
プロジェクトの作成
mvn archetype:generate
でプロジェクトのテンプレートを作成できます。
そのまま実行すると件数が多いため、オプションで「maven-archetype-quickstart
」を指定して実行します。
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4
コマンドの途中でgroupId
やartifactId
の入力が求められるので任意のIDを設定します。
> mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4
...
Define value for property 'groupId': com.example # グループIDを入力
Define value for property 'artifactId': sample # アーティファクトIDを入力
Define value for property 'version' 1.0-SNAPSHOT: : # そのままEnter(デフォルト値)
Define value for property 'package' com.example: : # そのままEnter(デフォルト値)
Confirm properties configuration:
groupId: com.example
artifactId: sample
version: 1.0-SNAPSHOT
package: com.example
Y: : # Enter
コマンド実行後、以下のファイルが作成されます。
sample
├─pom.xml
└─src
├─main
│ └─java
│ └─com
│ └─example
│ └─App.java
│
└─test
└─java
└─com
└─example
└─AppTest.java
pom.xml
のmaven.compiler.source
、maven.compiler.target
にJava7(1.7)が指定されているため、異なるバージョンを使用している場合は変更します。
<?xml version="1.0" encoding="UTF-8"?>
<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.example</groupId>
<artifactId>sample</artifactId>
<version>1.0-SNAPSHOT</version>
<name>sample</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
package com.example;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
package com.example;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* Unit test for simple App.
*/
public class AppTest
{
/**
* Rigorous Test :-)
*/
@Test
public void shouldAnswerWithTrue()
{
assertTrue( true );
}
}
プロジェクトのビルド
プロジェクトのルートフォルダーでmvn package
を実行します。
# プロジェクトのルートフォルダーに移動
cd sample
# ビルド
mvn package
プロジェクトの実行
target
フォルダー以下にJARファイルが作成されるのでjava
コマンドで実行します。
> java -cp target/sample-1.0-SNAPSHOT.jar com.example.App
Hello World!
Mavenの主なコマンド
Mavenの主なコマンドは以下のとおりです。
コマンド | 内容 |
---|---|
mvn validate |
プロジェクトに必要な情報がすべて揃っているか確認 |
mvn compile |
プロジェクトのソースコードをコンパイル |
mvn test |
ユニットテストを実施 |
mvn package |
JARファイルを作成 |
mvn integration-test |
統合テストを実行できる環境にデプロイ |
mvn verify |
パッケージが有効か確認 |
mvn install |
パッケージをローカルリポジトリにインストール |
mvn deploy |
パッケージをリモートリポジトリにコピー |
mvn clean |
クリーンアップ |
mvn site |
サイトドキュメントを作成 |