Edited at

よく使うMavenコマンド集

More than 1 year has passed since last update.

仕事上によく使うMavenのコマンド集を整理しました。


検証環境

・macOS Sierra

・java version 1.8.0_111

・Apache Maven 3.3.9


コマンド集


Mavenのインストール

tarファイルを解凍し、PATHに追加するためにbash_profileにM3_HOMEを追記する。

$ tar xzvf apache-maven-3.3.9-bin.tar 

$ vi ~/.bash_profile


bash_profile

export M3_HOME=/Users/local/apache-maven-3.3.9

M3=$M3_HOME/bin
export PATH=$M3:$PATH

インストール後の確認

$ mvn --version


雛形プロジェクトの作成。

$ mvn -B archetype:generate \

-DarchetypeGroupId=org.apache.maven.archetypes \
-DgroupId=com.myapp \
-DartifactId=myapp

またはmvn archetype:generateで対話式でプロジェクト新規作成できる。

$ mvn archetype:generate

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 923:
Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6:
Define value for property 'groupId': : com.myapp
Define value for property 'artifactId': : myapp
Define value for property 'version': 1.0-SNAPSHOT: :
Define value for property 'package': com.myapp: :
Confirm properties configuration:
groupId: com.myapp
artifactId: myapp
version: 1.0-SNAPSHOT
package: com.myapp
Y: :


プロジェクト検証

コンパイルを実行せず、プロジェクトに誤りがないかをチェックする。

$ mvn validate


コンパイル

プロジェクトをコンパイルする

$ mvn compile

コンパイル時JDKバーションまたは、JVMオプションを指定する場合、pom.xmlに以下の情報を追記する。


pom.xml

<project>

...

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-g</arg>
<arg>-Xlint</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>

</project>



テストの実行

Junitテストクラスの実行

$ mvn test

特定のクラスのみテストを実行する。

$ mvn test -Dtest=BlogicTest

特定のクラス、特定メソッドのみテストを実行する。

$ mvn test -Dtest= BlogicTest#blogicTest1

ワイルドカードを使って対象となるテストクラスを一括実行する。

$ mvn test -Dtest=Blogic*Test


パッケージ生成

JAR、WAR等の成果物を生成する。

packageを実行すればvaliate、compile、test、packageのフェーズも実行される。

$ mvn package

テストコードの実行をスキップし、JARを生成する。

$ mvn package -DskipTests

テストコードのコンパイル、およびテストの実行をスキップする。

$ mvn package -Dmaven.test.skip


インストール

JARをローカルリポジトリにインストールする。

$ mvn install

サードパーティJARをローカルリポジトリにインストールする。

mvn install:install-file -Dfile=target/foo.jar -DgroupId=com.foo -DartifactId=foo \

-Dversion=1.0 -Dpackaging=jar -DgeneratePom=true

テストコードの実行をスキップする。

$ mvn install -DskipTests

テストコードのコンパイル、およびテストの実行をスキップする。

$ mvn install -Dmaven.test.skip


デプロイ

パッケージをリモートリポジトリに登録する。

deployを実行すれば、その前のフェーズが全部実行される。

$ mvn deploy


Clean

targetディレクトリを削除する。

$ mvn clean

package、installの先に実行するのは一般的です。

$ mvn clean package

$ mvn clean install


情報表示

プロジェクトが持つ依存関係をtreeで表示する。

$ mvn dependency:tree

デフォルト設定を含め、pomファイルの情報を表示する。

$ mvn help:effective-pom

デフォルト設定を含め、設定ファイルの情報を表示する。

$ mvn help:effective-settings


ANT用build.xmlの生成

maven-ant-pluginを利用して、ant用build.xmlを生成する。

$ mvn ant:ant

$ tree
.
├── build.xml
├── maven-build.properties
├── maven-build.xml
├── pom.xml
└── src
├── main
│   └── java
│   └── com
│   └── myapp
│   └── App.java
└── test
└── java
└── com
└── myapp
└── AppTest.java


Eclipse用プロジェクトの生成

maven-eclipse-pluginを利用して.project.classpathが生成され、Eclipseでインポートできるようになる。

$ mvn eclipse:eclipse


ライブラリの出力

dependency-maven-pluginを利用し、依存するライブラリを特定のディレクトリにコピーする。

$ mvn dependency:copy-dependencies -DoutputDirectory=lib


アセンブリの出力

maven-assembly-pluginを利用して、ビルド済みのプロジェクトから実行可能Jar(アセンブリ)を作成する。

$ mvn assembly:assembly -DdescriptorId=bin


Javadoc

Javadocを生成する。

$ mvn javadoc:javadoc


ライブラリソース

依存しているライブラリのソースを出力する。

$ mvn dependency:sources