maven
Maven 3.9+Maven CLI コマンドのクイック リファレンス:プロジェクト ライフサイクル フェーズ、依存関係管理、プラグイン、マルチモジュール リアクター、リポジトリ デプロイ、デバッグ — よく使うオプションと実用例をまとめました。
34 コマンド
ライフサイクル フェーズ
mvn validateプロジェクト構造を検証します:メタデータのダウンロード、`pom.xml` の解析、依存関係の健全性チェック。
-N ルート リアクターのみ(サブモジュールなし); -f <pom> 別の POM を使用; -P<profile> プロファイルを有効化
mvn validatemvn compileプロジェクトのメイン `src/main/java` を `target/classes` にコンパイルします。構成された JDK と `maven-compiler-plugin` を使用します。
-DskipTests; -T 4 並列ビルド スレッド; -q 静かに
mvn compilemvn testコンパイル済みのメイン + テスト ソースに対してユニット テスト(Surefire)を実行します。`failsafe`(統合テスト)をスキップします — それには `mvn verify` を使用してください。
-Dtest=ClassName; -Dtest=Class#method; -DfailIfNoTests=false; -Dsurefire.useFile=false
mvn test -Dtest=UserServiceTestmvn package前のすべてのフェーズを実行し、コンパイル済み出力を `target/` 配下の JAR / WAR / EAR にパッケージ化します。
-DskipTests; -Dpackaging=jar
mvn package -DskipTestsmvn verifyパッケージと統合テスト(Failsafe)を実行し、すべてが出荷可能であることを検証します。**インストールもデプロイもしません**。
-DskipITs; -DskipTests
mvn verify -DskipITsmvn installverify を実行し、生成されたアーティファクトをローカル Maven リポジトリ(`~/.m2/repository`)にコピーして、他のローカル プロジェクトがそれに依存できるようにします。
mvn install -DskipTestsmvn deploy`pom.xml` の `<distributionManagement>` で宣言されたリモート リポジトリ(Nexus / Artifactory / Sonatype 経由の Maven Central)にアーティファクトをビルドしてプッシュします。
-DskipTests; -P release リリース プロファイルを使用
mvn deploy -P release -DskipTestsmvn clean`target/` ディレクトリを削除して新しい状態から始めます。
mvn cleanmvn clean install`target/` を消去してから `install` を実行します。最も一般的な「ゼロから再ビルド」コマンドです。
-U スナップショット依存関係の強制更新
mvn clean install -U依存関係
mvn dependency:tree解決された依存関係ツリー(競合解決付き)を出力します — バージョンの不一致による `NoSuchMethodError` の追跡に非常に貴重です。
-Dincludes=<groupId>[:<artifactId>[:<version>]]; -Dverbose
mvn dependency:tree -Dincludes=com.fasterxml.jackson.coremvn dependency:resolveライフサイクルを実行せずにすべての依存関係をローカル リポジトリに解決します。
mvn dependency:resolvemvn dependency:analyze宣言された `<dependencies>` と実際の `import` / `package` 使用法を比較します。未使用 / 未宣言の依存関係をフラグします。
mvn dependency:analyzemvn dependency:listビルド内で解決されたすべての依存関係をプレーンな `groupId:artifactId:type:version` 行として一覧表示します。
mvn dependency:list | grep slf4jmvn versions:display-dependency-updates構成されたリポジトリで新しいバージョンが利用可能なすべての依存関係を一覧表示します。
mvn versions:display-dependency-updatesマルチモジュール
mvn -pl <module> <goal>アーティファクト ID で 1 つ以上の特定のサブモジュールに対してゴールを実行します(カンマ区切り)。
-am ターゲットが依存するモジュールもビルド
mvn -pl user-service,order-service -am testmvn -pl <module> -am <goal>指定されたモジュールとそれが依存するすべてのモジュールをビルドします。`-amd`(also-make-dependents)は逆です。
mvn -pl web -am packagemvn -T 4 <phase> / mvn -T 1C <phase>並列リアクター:`-T 4` は 4 スレッドを使用; `-T 1C` は CPU コアあたり 1 スレッドを使用。マルチモジュール ビルドを高速化します。
mvn -T 1C clean installリポジトリ
mvn help:effective-pom最終的なマージ済み POM(スーパー POM + 親 POM + アクティブなプロファイル + 現在の設定)を 1 つのファイルに出力します — ビルド時の信頼できる情報源です。
-Doutput=<file>
mvn help:effective-pom > effective.xmlmvn help:effective-settingsマージされた `~/.m2/settings.xml` + グローバル + CLI `--settings` を出力します。ミラー / 資格情報の解決を追跡するのに便利です。
mvn help:effective-settings -s ./settings.xmlmvn -s <settings.xml> <phase>1 つのビルドに対してユーザー `settings.xml` を上書きします — ミラー化されたリポジトリでの CI に便利です。
mvn -s ./.mvn/settings.xml deployプラグイン
mvn <plugin>:<goal>単一のプラグイン ゴールを直接実行します。一般的なもの: `compiler:compile`、`surefire:test`、`jar:jar`、`deploy:deploy`、`dependency:tree`。
-D<param>=<value> ゴール パラメーター; -X デバッグ(非常に詳細)
mvn compiler:compile && mvn surefire:test -Dtest=*ServiceTestmvn help:describe -Dplugin=<id>プラグインのすべてのゴールとパラメーターを表示します。`<id>` を `groupId:artifactId` に置き換えてください。
mvn help:describe -Dplugin=org.apache.maven.plugins:maven-compiler-pluginプロファイル
mvn -P<profile1>,<profile2> <phase>`pom.xml` または `settings.xml` の `<profiles>` で宣言された 1 つ以上のプロファイルをアクティブにします。
mvn -Pprod,fast testmvn -P!<profile> <phase>既定でアクティブになるプロファイルを非アクティブ化します。
mvn -P!javadoc packageデバッグ
mvn -X <phase>デバッグ ログを有効にします — すべてのプラグイン実行、リポジトリ ルックアップ、ダウンロード URL を出力します。ファイルにパイプします。
-e エラーの完全なスタック トレース
mvn -X test > mvn-debug.log 2>&1mvn -e <phase>任意の失敗時に完全なスタック トレースを出力します。最大詳細のために `-X` と組み合わせます。
mvn -e -X deploymvnDebug <phase>Maven JVM の 1 行目でデバッガーをアタッチできるように、JDWP ソケット(既定ポート 8000)でビルドを停止して開始します。
mvnDebug testラッパー
./mvnw <phase>Maven ラッパーを介してビルドを実行します — `.mvn/wrapper/maven-wrapper.properties` で固定された Maven バージョンを使用します。常にラッパーをチェックインしてください。
-Dmaven.version=<ver> この実行のために Maven をアップグレード
./mvnw clean installmvn wrapper:wrapperMaven ラッパー ファイル(`mvnw`、`mvnw.cmd`、`.mvn/wrapper/*`)を生成 / 更新します。
-Dmaven=<version> Maven ディストリビューション バージョンを固定
mvn wrapper:wrapper -Dmaven=3.9.6その他
mvn --versionMaven バージョン、JDK、OS、ロケールを出力します。
mvn --versionmvn --helpすべての CLI フラグとサポートされるプロパティを一覧表示します。
mvn --help | head -40mvn -B <phase>バッチ / 非対話モード — 対話型プロンプトとカラー出力を無効にします。CI で不足しているプロパティでハングしないように使用します。
mvn -B -ntp clean verifymvn -ntp <phase>新しい転送プログレス バーを無効にします(CI で推奨;ログ ノイズを削減し、遅いミラーでの CPU スパイクを回避)。
mvn -B -ntp clean deploymvn -o <phase>オフライン モード — リモート リポジトリに呼び出しません。必要なアーティファクトがローカル リポジトリにない場合は速く失敗します。
mvn -o test関連コマンド速查
商標と利用についての告知
本コマンドラインツール・チートシート集はオープンコミュニティの参考資料です。本書で言及するツールの名前、ロゴ、商標(Git™、Docker™、Kubernetes®、kubectl、PostgreSQL®、MySQL®、Redis™、MongoDB®、Linux™、PowerShell™、Vim™ など)はすべてそれぞれの権利者の財産であり、本書では識別および参照の目的のみに使用しています。
本チートシートの全内容は独立して作成された簡略化された自己完結型の参考資料であり、いかなる公式ドキュメントにも所属せず、承認されておらず、また引用されたものでもありません。コマンド一覧、オプションフラグの説明、コード例はすべて著者による独自の簡略化です。権威ある情報については、各ツールの公式ドキュメントを参照してください。
コマンドの構文およびオプションフラグはツールのバージョンによって異なる場合があります。表示されるバージョンタグは安定リリースを示しています。他のバージョンでは動作が異なる場合があります。本書は商標権者による推奨や選好を意味するものではありません。
商標権者または著作権者の方で、当サイトの一部内容について権利侵害の懸念がある場合は[email protected]までご連絡ください。有効な権利証明を受領次第、合理的な期間内に関連内容を修正または削除いたします。
当サイトの情報を利用したことで生じたいかなる直接的・間接的損害についても、当サイトは法的責任を負いません。
Maven について
Apache Maven は 2002 年にデビューした Java プロジェクト管理および理解ツールで、最初は Jason van Zyl によって作成されました。宣言的な `pom.xml`(Project Object Model)でプロジェクトをモデル化し、明確に定義されたビルド ライフサイクルを 8 つの既定フェーズで実行します:`validate`、`compile`、`test`、`package`、`verify`、`install`、`deploy`。Maven は、単一のリポジトリ レイアウト(`groupId:artifactId:version`)とリモート リポジトリからの依存関係解決(Maven Central)を強制した最初の主流 Java ビルド ツールでした。現在の安定版は Maven 3.9+ です。Maven はアーティファクトをローカル リポジトリ(既定では `~/.m2/repository`)にダウンロードし、推移的に解決し、オプションのスコープ(`compile`、`provided`、`runtime`、`test`、`system`、`import`)を持ちます。プラグインはライフサイクルを拡張します。一般的なものには `maven-compiler-plugin`、`maven-surefire-plugin`、`maven-jar-plugin`、`maven-deploy-plugin` があります。プロファイル(`-P`)は環境ごとに既定を上書きします。Maven はソース コードをアップロードしません — `deploy` は `distributionManagement` で構成されたアーティファクト(jar/war/pom)のみを出荷します。ラッパー スクリプト(`mvnw` / `mvnw.cmd`)はプロジェクトごとに Maven バージョンを同梱し、ツールチェーンをロックします。
チートシート バージョン 1.0.0