LoginSignup
218
194

More than 5 years have passed since last update.

よく使うMavenコマンド集

Last updated at Posted at 2017-02-04

仕事上によく使う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
218
194
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
218
194