仕事上によく使う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
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に以下の情報を追記する。
<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