Mavenとは、pom.xml という設定ファイルをもとに、Javaのコンパイル・テスト・パッケージ作成・ライブラリ取得をまとめて行うビルドツールです。 操作はほぼ mvn フェーズ名 と mvn プラグイン:ゴール の2種類で、そこにオプション(-P や -DskipTests など)を組み合わせます。

この記事では、よく使うmvnコマンドとオプションの早見表、ライフサイクルの図、コメント付きでそのまま使えるpom.xmlテンプレート、scopeの判断表、settings.xml・ミラーの書き方、よくあるエラーの対処をまとめました。マルチモジュール構成を Maven 3.9.11 で実際に実行したログも載せています(検証環境はMaven Centralに接続できないため、プラグイン取得が必要なコマンドは未実行と明記しています)。最新版は Maven 3.9.16(2026年5月13日) で、Maven 4.0.0 は RC版(4.0.0-rc-7、2026年9月24日) の段階です。

mvnコマンド・オプション早見表

よく使うコマンド

やりたいこと コマンド
コンパイル mvn compile
テスト実行 mvn test
1クラス/1メソッドだけテスト mvn test -Dtest=TaskServiceTest / -Dtest=TaskServiceTest#create
jar/warを作る mvn package
作り直す(成果物を消して作成) mvn clean package
ローカルリポジトリ(~/.m2)に入れる mvn clean install
テストを飛ばしてjar作成 mvn package -DskipTests
テストのコンパイルも飛ばす mvn package -Dmaven.test.skip=true
依存ツリーを見る mvn dependency:tree
特定ライブラリの依存経路 mvn dependency:tree -Dincludes=グループID:アーティファクトID
最終的なpomを確認 mvn help:effective-pom
有効なプロファイルを確認 mvn help:active-profiles
プロパティの値を確認 mvn help:evaluate -Dexpression=project.version -q -DforceStdout
依存の新しい版を探す mvn versions:display-dependency-updates
新規プロジェクト作成 mvn archetype:generate
Maven Wrapperを作る mvn wrapper:wrapper
バージョン表示 mvn -v

よく使うオプション

オプション 意味 例
-P プロファイルを有効化(!で無効化) mvn package -P prod / -P dev,local / -P !dev
-D プロパティを渡す mvn test -Dapp.env=dev
-pl 対象モジュールを指定 mvn package -pl web
-am 指定モジュールが依存するモジュールも一緒に mvn package -pl web -am
-amd 指定モジュールに依存するモジュールも一緒に mvn test -pl core -amd
-o オフライン(ネットに取りに行かない) mvn -o package
-U SNAPSHOTや取得失敗の記録を更新して取り直す mvn -U clean install
-q 出力を最小限に(エラーのみ) mvn -q package
-X デバッグ出力 mvn -X package
-e エラー時にスタックトレースを表示 mvn -e package
-T 並列ビルド(スレッド数、1CはCPUコア数×1) mvn -T 1C install
-B バッチモード(対話なし・色なし、CI向け) mvn -B verify
-f pomの場所を指定 mvn -f sub/pom.xml test
-s settings.xmlを指定 mvn -s ci-settings.xml deploy
-ntp ダウンロードの進捗表示を消す mvn -B -ntp verify
-rf 途中のモジュールから再開 mvn install -rf :web
-fae エラーがあっても最後まで続ける mvn -fae test

-DskipTests は「テストのコンパイルはするが実行しない」、-Dmaven.test.skip=true は「テストのコンパイルも実行もしない」という違いがあります。テストコードがほかのモジュールから使われる構成では、-DskipTests を選ぶと安全です。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Mavenコマンド一覧|pom.xml書き方とよく使うオプション」

Mavenの最新版とMaven 4の状況

2026年10月時点で、安定版(GA)の最新は Maven 3.9.16 です。 公式のリリース履歴では、3.9系は Java 8 以上で動きます。Maven 4.0.0 はまだRC(リリース候補)で、Java 17以上が必要です。

バージョン リリース日 必要なJava 状況
3.9.16 2026-05-13 Java 8 最新の安定版
3.10.0-rc-1 2026-07-09 Java 8 RC
4.0.0-rc-6 2026-08-04 Java 17 RC
4.0.0-rc-7 2026-09-24 Java 17 最新のRC
3.9.11(本記事の検証環境) 2025-07-12 Java 8 安定版

日々のビルドは3.9系の最新を使い、Maven 4はRCで動作を試しておくのが、いまの無理のない進め方です。Maven 4では、POMのモデルバージョン 4.1.0(<modules> の代わりに <subprojects> など)や、ビルド用POMと公開用POMの分離が導入されます。3.9系向けの pom.xml(modelVersion 4.0.0)は、Maven 4でもそのまま読み込めます。

ライフサイクル・フェーズ・ゴールの関係

Mavenのコマンドは「フェーズ」を指定すると、そのフェーズまでのすべてのフェーズが順番に実行されます。 各フェーズには「プラグインのゴール(実際の処理)」が結び付いています。

flowchart LR
  validate --> compile --> test --> package --> verify --> install --> deploy
  compile -.- C["compiler:compile"]
  test -.- T["surefire:test"]
  package -.- J["jar:jar"]
  install -.- I["install:install"]
  deploy -.- D["deploy:deploy"]
フェーズ 主な処理(jarの場合の既定ゴール) 結果
validate pomの検証(既定のゴールなし) pomが正しいかだけ確認
compile resources:resources, compiler:compile target/classes
test resources:testResources, compiler:testCompile, surefire:test テスト結果 target/surefire-reports
package jar:jar target/*.jar
verify 結合テスト(failsafeなどを設定した場合) 検証結果
install install:install ~/.m2/repository に登録
deploy deploy:deploy 共有リポジトリに公開

clean は別のライフサイクル(target を消す)なので、mvn clean package のように並べて書きます。

書き方 意味
mvn package フェーズ指定。validate〜packageまで全部動く
mvn dependency:tree ゴール指定。そのゴールだけ動く
mvn clean verify cleanライフサイクル → defaultライフサイクルのverifyまで
mvn compile exec:java フェーズとゴールを組み合わせる

実行ログで確かめる(Maven 3.9.11)

検証環境:Apache Maven 3.9.11 / OpenJDK 21.0.10 / Linux。Maven Central(外部リポジトリ)に接続できない環境のため、プラグインを必要としない validate フェーズと、リアクター(マルチモジュールの実行順)関連のオプションを実行しました。

使ったマルチモジュール構成

todo-parent/
├── pom.xml          (親:packaging=pom)
├── core/pom.xml     (todo-core)
└── web/pom.xml      (todo-web:todo-coreに依存)
<!-- web/pom.xml -->
<project xmlns="http://maven.apache.org/POM/4.0.0">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.example</groupId>
    <artifactId>todo-parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </parent>
  <artifactId>todo-web</artifactId>
  <dependencies>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>todo-core</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>
</project>

mvn -o validate(全モジュール)

$ mvn -o validate
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] todo-parent                                                        [pom]
[INFO] todo-core                                                          [jar]
[INFO] todo-web                                                           [jar]
[INFO] 
[INFO] ----------------------< com.example:todo-parent >-----------------------
[INFO] Building todo-parent 1.0.0-SNAPSHOT                                [1/3]
[INFO]   from pom.xml
[INFO] --------------------------------[ pom ]---------------------------------
[INFO] 
[INFO] -----------------------< com.example:todo-core >------------------------
[INFO] Building todo-core 1.0.0-SNAPSHOT                                  [2/3]
[INFO]   from core/pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] ------------------------< com.example:todo-web >------------------------
[INFO] Building todo-web 1.0.0-SNAPSHOT                                   [3/3]
[INFO]   from web/pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for todo-parent 1.0.0-SNAPSHOT:
[INFO] 
[INFO] todo-parent ........................................ SUCCESS [  0.002 s]
[INFO] todo-core .......................................... SUCCESS [  0.001 s]
[INFO] todo-web ........................................... SUCCESS [  0.000 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

「Reactor Build Order」は、依存関係から自動で決まったビルド順です。 web が core に依存しているので、core が先になっています。

-pl と -am / -amd の違い

$ mvn -o validate -pl web
[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------------< com.example:todo-web >------------------------
[INFO] Building todo-web 1.0.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] BUILD SUCCESS
$ mvn -o validate -pl web -am
[INFO] Reactor Build Order:
[INFO] 
[INFO] todo-parent                                                        [pom]
[INFO] todo-core                                                          [jar]
[INFO] todo-web                                                           [jar]
...
[INFO] BUILD SUCCESS
$ mvn -o validate -pl core -amd
[INFO] Reactor Build Order:
[INFO] todo-core                                                          [jar]
[INFO] todo-web                                                           [jar]
...
[INFO] BUILD SUCCESS
指定 対象になったモジュール 使う場面
-pl web web だけ web だけ直した、coreは install 済み
-pl web -am parent・core・web web に必要なものを全部まとめてビルド
-pl core -amd core・web core を直したので、影響を受ける側もテスト

-pl web だけだと、core の最新の変更は使われません(~/.m2 にある core が使われます)。core も直したときは -am を付けます。

-P で存在しないプロファイルを指定した場合

$ mvn -o validate -P dev,nosuch
[INFO] Scanning for projects...
[WARNING] The requested profile "nosuch" could not be activated because it does not exist.
...
[INFO] BUILD SUCCESS
...
[WARNING] The requested profile "nosuch" could not be activated because it does not exist.

プロファイル名の打ち間違いはエラーではなく警告で、ビルドは成功します。 本番用の設定が入らないままjarができる、ということが起こりうるので、ログの WARNING を確認する習慣をつけると安心です。

-q と -T

$ mvn -o -q validate
(何も表示されずに終了。エラーがないときは出力なし)

$ mvn -o validate -T 2 | grep -iE 'thread|Total'
[INFO] Using the MultiThreadedBuilder implementation with a thread count of 2
[INFO] Total time:  0.148 s (Wall Clock)

-X で読み込まれるsettings.xmlを確認

$ mvn -o -X validate | grep -iE 'maven home|settings'
Maven home: /opt/maven
[DEBUG] Reading global settings from /opt/maven/conf/settings.xml
[DEBUG] Reading user settings from /root/.m2/settings.xml

ミラーやプロキシの設定が効かないときは、-X でどのsettings.xmlが読まれているかを最初に確認すると原因を絞り込めます。

この環境で未実行のコマンド

次のコマンドはプラグインのダウンロードが必要なため、検証環境では実行していません(実行すると後述の「プラグインが見つからない」エラーになります)。書き方は公式ドキュメントに沿っています。

未実行 理由
mvn compile / test / package / install resources・compiler・surefire・jar プラグインが必要
mvn dependency:tree dependency プラグインが必要
mvn help:effective-pom / help:active-profiles help プラグインが必要
mvn wrapper:wrapper / archetype:generate 各プラグインが必要

コピペ用pom.xmlテンプレート(コメント付き)

単一モジュールのJava 21アプリの基本形です。 バージョン番号は例なので、使うときはMaven Centralで最新を確認してください(このテンプレートはプラグイン取得が必要なため未実行です)。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!-- ① 座標(GAV):世界で一意になる名前 -->
  <groupId>com.example</groupId>
  <artifactId>todo-app</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <!-- ② プロパティ:版や文字コードを1か所で管理 -->
  <properties>
    <maven.compiler.release>21</maven.compiler.release>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <junit.version>5.13.4</junit.version>
  </properties>

  <!-- ③ dependencyManagement:版だけを決める(ここでは追加されない) -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>${junit.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <!-- ④ dependencies:実際に使うライブラリ -->
  <dependencies>
    <!-- BOMで版が決まっているので version は書かない -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- ⑤ build:プラグインの版と設定 -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.14.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.5.4</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.4.2</version>
        <configuration>
          <archive>
            <manifest>
              <mainClass>com.example.todo.Main</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <!-- ⑥ profiles:環境ごとの切り替え(mvn -P prod) -->
  <profiles>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <app.env>dev</app.env>
      </properties>
    </profile>
    <profile>
      <id>prod</id>
      <properties>
        <app.env>prod</app.env>
      </properties>
    </profile>
  </profiles>
</project>

pom.xmlの要素早見表

要素 役割 ポイント
groupId / artifactId / version 成果物の名前(GAV) -SNAPSHOT は開発中の版
packaging 成果物の種類 jar(既定)/ war / pom(親)
parent 親pomの設定を引き継ぐ Spring Bootの spring-boot-starter-parent もこれ
modules 子モジュールの一覧 親pomに書く(Maven 4では subprojects)
properties 変数 ${junit.version} で参照、-D で上書き可
dependencyManagement 版の一元管理 ここに書いただけでは依存に入らない
dependencies 使うライブラリ 版は dependencyManagement に任せられる
build/plugins プラグインの版・設定 版を書いておくとビルドが安定する
build/pluginManagement プラグインの版の一元管理 子モジュール向け
profiles 条件付きの設定 -P / activation で有効化
repositories 取得先の追加 社内リポジトリは settings.xml のミラーで書くのが一般的

maven.compiler.release は、source と target を両方指定するより確実です。指定したJavaの版にないAPIを使うとコンパイルエラーで教えてくれます。

scope一覧と判断表

scope コンパイル テスト 実行時(jarに同梱) 例
compile(既定) 使える 使える 含む 一般的なライブラリ
provided 使える 使える 含まない サーブレットAPI、Lombok
runtime 使えない 使える 含む JDBCドライバ
test 使えない 使える 含まない JUnit、AssertJ、Mockito
system 使える 使える 含まない ローカルのjarを直接指す(現在は非推奨)
import ― ― ― dependencyManagement でBOMを読み込む専用
質問 はい いいえ
① テストでしか使わない? test ②へ
② ソースで import する? ③へ runtime
③ 実行環境(サーバーなど)が用意してくれる? provided compile(省略可)

Gradleの implementation は Maven の compile、compileOnly は provided、runtimeOnly は runtime、testImplementation は test にほぼ対応します。

依存の版がぶつかったとき

Mavenは、同じライブラリの版が複数出てきたとき、依存ツリーで「近い」ほうを使います(同じ深さなら先に書いたほう)。意図しない版になったときは、次のどちらかで直します。

<!-- 方法1:dependencyManagement で版を固定(おすすめ) -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.example.lib</groupId>
      <artifactId>json-util</artifactId>
      <version>2.1.0</version>
    </dependency>
  </dependencies>
</dependencyManagement>

<!-- 方法2:exclusions で推移的依存を外す -->
<dependency>
  <groupId>com.example.lib</groupId>
  <artifactId>report-lib</artifactId>
  <version>1.4.0</version>
  <exclusions>
    <exclusion>
      <groupId>com.example.lib</groupId>
      <artifactId>json-util</artifactId>
    </exclusion>
  </exclusions>
</dependency>

確認は mvn dependency:tree -Dverbose で行います(omitted for conflict と表示された依存が、版の衝突で外れたものです)。

settings.xmlとミラーの書き方

settings.xmlは「PCごと・ユーザーごと」の設定で、pom.xmlは「プロジェクトごと」の設定です。 パスワードやプロキシはpomではなくsettings.xmlに書きます。

ファイル 場所 優先度
ユーザー設定 ~/.m2/settings.xml 高い
全体設定 ${maven.home}/conf/settings.xml 低い
明示指定 mvn -s パス ユーザー設定の代わりに使う
<!-- ~/.m2/settings.xml -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">

  <!-- ローカルリポジトリの場所を変える(省略時は ~/.m2/repository) -->
  <!-- <localRepository>/data/m2repo</localRepository> -->

  <!-- ミラー:すべての取得を社内リポジトリ経由にする -->
  <mirrors>
    <mirror>
      <id>internal-repo</id>
      <name>社内ミラー</name>
      <url>https://repo.example.internal/maven-public/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>

  <!-- 認証情報:id をミラーやリポジトリの id とそろえる -->
  <servers>
    <server>
      <id>internal-repo</id>
      <username>${env.REPO_USER}</username>
      <password>${env.REPO_PASSWORD}</password>
    </server>
  </servers>

  <!-- プロキシ -->
  <proxies>
    <proxy>
      <id>office-proxy</id>
      <active>true</active>
      <protocol>https</protocol>
      <host>proxy.example.internal</host>
      <port>8080</port>
      <nonProxyHosts>localhost|*.example.internal</nonProxyHosts>
    </proxy>
  </proxies>
</settings>
mirrorOf の値 意味
* すべてのリポジトリ
central Maven Central だけ
*,!snapshots snapshots という id 以外すべて
external:* localhost とファイル以外のすべて

パスワードは ${env.変数名} で環境変数から読むと、ファイルに直接書かずに済みます。 暗号化したい場合は mvn --encrypt-master-password / --encrypt-password も使えます。

よくあるエラーと対処(実際のエラー文つき)

1. Plugin ... could not be resolved(プラグインが取得できない)

検証環境で mvn -o compile を実行したときのエラーです(実行結果)。

[WARNING] The POM for org.apache.maven.plugins:maven-resources-plugin:jar:3.3.1 is missing, no dependency information available
[INFO] BUILD FAILURE
[ERROR] Plugin org.apache.maven.plugins:maven-resources-plugin:3.3.1 or one of its dependencies could not be resolved:
[ERROR]     Cannot access central (https://repo.maven.apache.org/maven2) in offline mode and the artifact org.apache.maven.plugins:maven-resources-plugin:jar:3.3.1 has not been downloaded from it before.

-o を外すと、今度は通信先から 403 が返りました(実行結果)。

[ERROR] Plugin org.apache.maven.plugins:maven-resources-plugin:3.3.1 or one of its dependencies could not be resolved:
[ERROR]     The following artifacts could not be resolved: org.apache.maven.plugins:maven-resources-plugin:pom:3.3.1 (absent): Could not transfer artifact org.apache.maven.plugins:maven-resources-plugin:pom:3.3.1 from/to central (https://repo.maven.apache.org/maven2): status code: 403, reason phrase: Forbidden (403)

→ オフラインなら一度ネットにつないで取得、403や接続エラーならsettings.xmlのプロキシ・ミラーを確認します。 依存ライブラリで同じことが起きると Could not resolve dependencies for project ... というメッセージになり、対処は同じです。一度失敗した記録が残っているときは mvn -U で取り直します。

2. No plugin found for prefix 'help'

mvn -o help:effective-pom の結果です(実行結果)。

[ERROR] No plugin found for prefix 'help' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/root/.m2/repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1]

→ プラグインがまだ取得されていないか、接頭辞(prefix)の打ち間違いです。 取得できない環境では mvn org.apache.maven.plugins:maven-help-plugin:3.5.1:effective-pom のように正式名で指定すると、どのプラグインが必要かがはっきりします。

3. 'dependencies.dependency.version' ... is missing

versionを書き忘れ、scopeも打ち間違えたときの結果です(実行結果)。

[ERROR] 'dependencies.dependency.version' for com.example:todo-core:jar is missing. @ line 11, column 17
[WARNING] 'dependencies.dependency.scope' for com.example:todo-core:jar must be one of [provided, compile, runtime, test, system] but is 'tset'. @ line 14, column 14

→ versionを書くか、dependencyManagement(BOM)で版を管理します。 scopeの誤りは警告止まりなので、見落とさないようにします。

4. Child module ... does not exist

親pomの <modules> に、存在しないフォルダを書いたときの結果です(実行結果)。

[ERROR] Child module /…/todo-parent/api of /…/todo-parent/pom.xml does not exist @
[ERROR] The build could not read 1 project -> [Help 1]

→ <module> にはartifactIdではなく「フォルダ名」を書きます。 フォルダ名とartifactIdが違う構成でよく起こります。

そのほかのよくあるエラー

エラー文(要旨) 原因 対処
release version 21 not supported Mavenを動かすJDKが古い JAVA_HOME を21以上に、mvn -v で確認
No tests to run / テストが0件 surefireが古い、クラス名が *Test でない surefireの版を上げる、命名を合わせる
Non-resolvable parent POM 親pomが見つからない relativePath を確認、親を先に install
PKIX path building failed 社内プロキシの証明書が信頼されていない JDKのトラストストアに証明書を追加
Failed to execute goal ... surefire ... There are test failures テスト失敗 target/surefire-reports を確認
class file has wrong version 65.0, should be 61.0 依存がより新しいJava向け maven.compiler.release とJDKをそろえる

よくある質問

Q. mvn installとmvn packageの違いは何ですか? A. package は target にjarを作るところまで、install はさらにそのjarを ~/.m2/repository に登録します。マルチモジュールで、別のモジュールから -pl で単独ビルドするときに install 済みのものが使われます。

Q. -DskipTestsと-Dmaven.test.skip=trueはどちらを使えばよいですか? A. ふだんは -DskipTests がおすすめです。テストコードのコンパイルはするので、テストコードの書き間違いに気づけます。-Dmaven.test.skip=true はテストのコンパイルも飛ばすため、テスト用jarを使うモジュールがあるとビルドが通らなくなることがあります。

Q. pom.xmlとsettings.xmlの使い分けは? A. チーム全員で同じにしたいもの(依存、プラグイン、プロファイル)はpom.xml、PCや人によって変わるもの(ミラー、プロキシ、パスワード)はsettings.xmlに書きます。

Q. Maven 4にはもう移行すべきですか? A. 2026年10月時点では4.0.0はRC段階のため、通常のビルドは3.9系の最新(3.9.16)で行い、Maven 4は手元で試して動作を確認しておくと移行がスムーズです。3.9系向けのpom.xmlはMaven 4でも読み込めます。

まとめ

  • mvnは「フェーズ」(compile・test・package・install)と「ゴール」(dependency:tree など)の2種類で操作する
  • フェーズは前のフェーズも全部実行する。clean は別のライフサイクルなので並べて書く
  • マルチモジュールは -pl で対象を絞り、-am/-amd で関連モジュールも含める(実行ログで順序を確認)
  • 版は properties と dependencyManagement(BOM)で一元管理、scopeは判断表で選ぶ
  • ミラー・プロキシ・パスワードはsettings.xml、効かないときは -X で読み込み先を確認
  • 最新の安定版は3.9.16、Maven 4.0.0はRC(rc-7)の段階

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Mavenコマンド一覧|pom.xml書き方とよく使うオプション」

株式会社RJCでは、MavenなどJavaのビルドツールの使い方を仲間と学び合っています。こうした知識を共有しながら、日々技術を磨いています。

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?