[解決済み] Mavenは理論的にも実際にも何をするのか?どんな時に使う価値があるのでしょうか?[クローズド]
質問
私はこれから練習のためにJavaのプロジェクトを始めようとしています。Mavenについて読んだことがありますが、実際にどのような場合に使うのか理解していません。
実用的なヒントを教えてください。Mavenはかなり役に立ちますか?Mavenは実際に私のプロジェクトに何をもたらしてくれるのでしょうか?
どのように解決するのですか?
何をするのか
Mavenはビルド管理ツールです。
.java
にコンパイルされます。
.class
にパッケージされています。
.jar
(または
.war
または
.ear
)ファイル、ツールによる(前/後)処理、自分の
CLASSPATH
その他、プロジェクトを構築するために必要なあらゆる種類のタスクがあります。と似ています。
Apache Ant
または
グラドル
または
メイクファイル
C/C++では、ダウンロードや必要なライブラリのインストールなど、他の一般的なタスクを組み込むことによって、追加のツールやスクリプトを必要としないように、完全に自己完結しようとしています。
また、「ビルドの移植性」というテーマで設計されており、あるコンピュータでは同じビルドスクリプトで同じコードが動作するが、別のコンピュータでは動作しないといった問題が起こらないようになっています(これは既知の問題で、私たちの Delphi アプリケーションのいくつかは他の場所ではコンパイルできなかったので Windows 98 マシンの VM を持っています)。このため、IDEで生成されたAntスクリプトは他のIDEにインポートするのが難しいので、異なるIDEを使う人々の間でプロジェクトに取り組むのに最適な方法でもありますが、最近はすべてのIDEがMavenを理解しサポートしています ( IntelliJ , エクリプス そして NetBeans ). たとえMavenが気に入らなくても、他のすべてのモダンなビルドツールにとってMavenは参考となるものです。
使用する理由
Mavenには、以下の3つのポイントがあります。 非常に はいい。
-
Mavenは(使用するライブラリを宣言した後)使用するすべてのライブラリをダウンロードします。 と というライブラリは それら を自動的に使用します。これはとても素晴らしいことで、たくさんのライブラリを扱うのがとんでもなく簡単になります。これによって 依存性地獄。 . これは、Apache Antの アイビー .
-
"を使用しています。 構成より規約 そのため、デフォルトでは、やりたいタスクを定義する必要はありません。AntやMakefileのように、コンパイル、テスト、パッケージ、クリーンアップの各ステップを記述する必要はありません。Mavenが期待する場所にファイルを置くだけで、バットから動作するはずです。
-
また、Mavenにはたくさんの素晴らしいプラグインがあり、インストールすることで、以下のような多くのルーチンワークを処理することができます。 JAXBを使用してXSDスキーマからJavaクラスを生成する。 から Coberturaによるテストカバレッジの測定 . を追加するだけです。
pom.xml
で、これらはあなたがやりたいことすべてと統合されます。
最初の学習曲線は急ですが、(ほぼ)すべてのプロのJava開発者がMavenを使用しているか、使用したいと願っています。しかし、慣れるまでに時間がかかったり、新しいことを学ぶことが苦痛になることがあるため、手動で行うことができればと思うことがあっても驚かないでください。しかし、一度Mavenに慣れてしまえば、ビルド管理にほとんど時間がかからないことに気がつくでしょう。
開始方法
一番いいのは、"です。 5分でわかるMaven となります。必要なファイルやフォルダをすべてセットアップして、コーディングするためのプロジェクトを始めることができます(そう、少なくとも最初は、クイックスタート・アーキタイプを使うことをお勧めします)。
使い始めたら、このツールがどのように使われるのか、より深く理解したいと思うでしょう。そのために、quot; Mavenでより良いビルドを しかし、その仕組みの根幹を理解するには、" が最も綿密な場所です。 メイヴン 完全版リファレンス "の方が最新です。前者を読んで理解し、後者を参考にする。
関連
-
linux run jarfile Invalid or corrupt jarfile error.
-
java 例外。Javaツールの初期化
-
テストが見つかりませんでした
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Mavenスナップショットとは何か、なぜそれが必要なのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
アイデア Springboot Web プロジェクトを jar にパッケージ化する場合、Error: 無効または破損した jarfile x.jar 解決策
-
JSPで「リストが型解決できない!」の解決方法
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策
-
[解決済み】なぜAntやMavenの代わりにGradleを使うのか?[解決済み]