🕌

mvnwとmvnの違い

2022/10/05に公開

最近デプロイ周りをいじってるときに両方つかう機会があって調べたのでまとめ

忙しい人向け

基本的にどっちでもいい
ただレガシーなシステムと新しいシステムが混ざるシステムはmvnwを使ったほうがいい

mvnとは

javaの依存関係管理ツール
https://maven.apache.org/

javaの依存関係管理ツールはgradleとmavenに2択になってる

mvnwとは

mavenのラッパー
https://maven.apache.org/wrapper/

mavenは割と枯れたツールではあるが、バージョンアップがないわけではないので、プロジェクトごとにmavenのバージョンを変更したりするために作られたツール

mvnとmvnwの違い

先程も書いたが環境に依存せずにmvnを使うためにmvnw作られたので、mvnが内包されており、基本的には一緒
mvnwにはmvnのバージョン指定したりするためにいくつかオプションが追加されている

使い分け

mvnは頻繁に更新があるわけではないの基本的にはどっちを使っても問題はないと思います
ただ、レガシーなシステムと新しいシステムが交じるようなシステムを作る場合は利用したほうがよいと思います
mvnには2系と3系でいくつか破壊的な変更があって2系ではbuildできるけど、3系だとbuildできないというケースがあるので、その差分をうまく吸収するためにmvnwを使うとよいかと思います

Discussion