それがすること
Mavenは「ビルド管理ツール」です。これは、.java
ファイルのコンパイル方法、ファイルへの.class
パッケージ化.jar
(または.war
or .ear
)ファイル、(事前/事後)ツールでの処理、の管理、CLASSPATH
その他に必要なすべての種類のタスクを定義するためのものですプロジェクトをビルドします。これは、C / C ++のApache AntまたはGradleまたはMakefileに似ていますが、必要なライブラリのダウンロードやインストールなどの他の一般的なタスクを組み込むことにより、追加のツールやスクリプトを必要としないように完全に自己完結しようとします。
また、「ビルドの移植性」をテーマに設計されているため、同じビルドスクリプトの同じコードが別のコンピューターでは機能しないという問題が発生しません(これは既知の問題であり、WindowsのVMがあります) Delphiアプリケーションの一部を他の場所でコンパイルできないため、98台のマシン。このため、IDEで生成されたAntスクリプトを他のIDEにインポートするのは難しいため、異なるIDEを使用する人々の間でプロジェクトに取り組む最善の方法でもありますが、現在、すべてのIDEがMaven(IntelliJ、Eclipse、およびNetBeans)を理解およびサポートしています)。Mavenが気に入らなくても、他のすべての最新ビルドツールの参照ポイントになります。
なぜそれを使うべきか
あるMavenの約3つのものがありとても素敵で。
Mavenは意志(あなたが使用しているものを宣言した後)は、すべてのあなたが使用することをライブラリダウンロードしていることをライブラリが、彼らは自動的に使用します。これは非常に便利で、多くのライブラリを驚くほど簡単に扱うことができます。これにより、「依存関係の地獄」を回避できます。Apache AntのIvyに似ています。
「Convention over Configuration」を使用するため、デフォルトでは、実行するタスクを定義する必要はありません。AntやMakefileで行う必要があるように、「コンパイル」、「テスト」、「パッケージ」、または「クリーン」のステップを記述する必要はありません。Mavenが期待する場所にファイルを置くだけで、バットから動作するはずです。
Mavenには、JAXBを使用したXSDスキーマからのJavaクラスの生成からCoberturaでのテストカバレッジの測定まで、多くのルーチンタスクを処理する、インストール可能な素晴らしいプラグインがたくさんあります。それらをあなたに追加するだけで、pom.xml
あなたがしたい他のすべてと統合されます。
初期の学習曲線は急ですが、(ほぼ)すべてのプロのJava開発者がMavenを使用しているか、それを望んでいます。すべてのプロジェクトでMavenを使用する必要がありますが、慣れるまでに時間がかかり、新しいことを学ぶのが面倒な場合があるので、手動で操作したいと思っても驚くことはありません。ただし、Mavenに慣れると、ビルド管理にほとんど時間がかからないことがわかります。
始め方
開始するのに最適な場所は、「Maven in 5 Minutes」です。これにより、必要なすべてのファイルとフォルダーをセットアップしてコード化する準備ができたプロジェクトから始めることができます(そうです、少なくとも最初は、クイックスタートアーキタイプを使用することをお勧めします)。
使い始めたら、ツールの使用方法について理解を深める必要があります。そのため、「Better Builds with Maven」はそれがどのように機能するかについての根本を理解するための最も完全な場所ですが、「Maven:The Complete Reference」はより最新のものです。最初の1つを読んで理解し、2つ目を参考にしてください。