2011-09-23 13 views

答えて

18

mvn:installは、ローカルのリポジトリ(デフォルトでは~/.m2/repository)にパッケージ化されたMavenモジュールをコピーして、他のローカルMavenビルドからアクセスします。

mvn:deployは、パッケージ化されたMavenモジュールを別の(通常はリモート)リポジトリにアップロードします。これは、必ずしもローカルではないMavenビルドではなく他のリポジトリにアクセスするためです。

詳細については、documentation for the build lifecycleを参照してください。

1

mvn:deployは、リモートリポジトリ/環境への展開を実行します。mvn:installは、すべてのコンパイル済みパッケージをローカルリポジトリにインストールし、ローカルマシン上で実行される他のビルドで使用できるようにします。

+0

「すべてコンパイルされたパッケージ」とはどういう意味ですか? – Daniel

+0

@Daniel、pom、jar、war、javadoc jar、source jar前のビルドフェーズでコンパイル/アセンブルされたもの。 –

0

mvn:installはローカルのMavenリポジトリにコンポーネントをコンパイルしてインストールするので、ローカルで使用され、開発された他のコンポーネントが依存する場合に使用することができます。 mvn:deployは、(以前にインストールされた)コンポーネントをリモートリポジトリにデプロイします。

+0

デプロイする前にモジュールを_really_インストールする必要がありますか? – Daniel

+0

私はMavenのデフォルトのライフサイクルにそれが含まれていると思います。そして、あなたがそれを配備するだけなら、何を配備すべきですか? http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.htmlのドキュメントを参照してください。ビルドフェーズを呼び出すと、そのビルドフェーズだけでなく、呼び出されたビルドフェーズ前のすべてのビルドフェーズも実行されるためです。 – mliebelt

+0

パッケージされたアーティファクト。 – Daniel

2

installフェーズは、ローカルのリポジトリにアーティファクトをインストールするためのフェーズです。これは基本的にMavenリポジトリに適用されますが、よく知られている例はmaven-bundle-pluginでサポートされているOSGi Bundle Repositoryです。

deployフェーズは、公開レポジトリへのアーティファクトのインストールを担当します。これは通常、リモートリポジトリに適用されますが、完全に外部の世界に公開されているローカルリポジトリである可能性があります。

すべてのMavenフェーズでは、必要なものをすべて使用できます。あなたが合うようにあなたは、プラグインの段階をシャッフルすることができますが、上記の意味は従来のものであり、あなたが他のプラグイン目標のデフォルトのフェーズと一致するためには、それに固執する必要があります。

関連する問題