pom.xml(プロジェクトオブジェクトモデル)とは何ですか? 動的Webプロジェクト(Java / J2EE)で使用するためのサンプルpom.xml

公開: 2021-06-25
pom.xml(プロジェクトオブジェクトモデル)とは何ですか?動的Webプロジェクトで使用するためのサンプルpom.xml

pom.xmlファイルとは何ですか?

POMは、 Project Object Modelを意味します。 これは、Mavenの基本的な作業単位です。 pom.xmlファイルには、すべての構成、依存関係、プラグインの統合、およびプロジェクトのセットアップ手順が含まれています。

これは、ライブラリの依存関係をプロジェクトに追加するための最良の方法です。 .jarファイルをプロジェクトリソースフォルダーにコピーするのは、古い方法です。

pom.xmlファイルを詳しく理解しましょう。

最も単純なデフォルトのpom.xmlファイル

pom.xml要素を調べてみましょう:

エレメント説明
事業要素は記述子のルートです。 次の表に、可能なすべての子要素を示します。
modelVersion このPOMが準拠するプロジェクト記述子のバージョンを宣言します。 バージョン4.0.0に設定します。
groupId プロジェクトのユニバーサル一意識別子。 通常、完全修飾パッケージ名を使用して、同様の名前を持つ他のプロジェクト(org.apache.mavenなど)と区別します。
ArtifactId グループIDによって指定されたグループ内で一意であるこのアーティファクトの識別子。 アーティファクトは、プロジェクトによって生成または使用されるものです。 プロジェクトのためにMavenによって生成されるアーティファクトの例には、JAR、ソースとバイナリのディストリビューション、およびWARが含まれます。
バージョンこのプロジェクトによって生成されたアーティファクトの現在のバージョン。
pom.xml要素を理解する

追加の要素を含むpom.xmlファイル

より多くの要素を含むpom.xmlファイル:

エレメント説明
包装このプロジェクトで生成されるアーティファクトのタイプ。たとえば、jar war earpomです。 プラグインは独自のパッケージを作成できるため、独自のパッケージタイプを作成できるため、このリストにはすべての可能なタイプが含まれているわけではありません。
名前プロジェクトのフルネーム。
url プロジェクトのホームページへのURL。
依存関係この要素は、プロジェクトに関連付けられているすべての依存関係を記述します。 これらの依存関係は、ビルドプロセス中にプロジェクトのクラスパスを構築するために使用されます。 これらは、このプロジェクトで定義されたリポジトリから自動的にダウンロードされます。
依存依存関係を生成したプロジェクトグループ(例:org.apache.maven)。
建てるプロジェクトの構築に必要な情報。
sourceDirectory この要素は、プロジェクトのソースを含むディレクトリを指定します。 生成されたビルドシステムは、プロジェクトのビルド時にこのディレクトリのソースをコンパイルします。 指定されたパスは、プロジェクト記述子を基準にしています。
finalName 生成されたアーティファクトが呼び出されるファイル名(拡張子を除き、パス情報なし)。 デフォルト値は$ {artifactId}-$ {version}です。
プラグイン使用するプラグインのリスト。
プラグインリポジトリ内のプラグインのグループID。
範囲依存関係の範囲–コンパイル、ランタイム、テスト、システム、および提供。 コンパイル、テストなどに使用されるさまざまなクラスパスを計算するために使用されます。 また、このプロジェクトの配布に含めるアーティファクトを決定するのにも役立ちます。

Crunchifyで700を超えるJavaチュートリアルを公開しており、SpringMVCの依存関係を含め始めてからpom.xmlファイルを使用しています。

ライブラリの依存関係がますます追加されているため、過去数年間で、CrunchifyのJavaチュートリアルpom.xmlファイルはさらに大きくなりました

参考までに、現在のpom.xmlファイルを次に示します。 それをコピーしてプロジェクトに追加すると、それも機能します。

CrunchifyのJavaトトリアルに使用しているpom.xmlファイル

これにより、pom.xmlファイルとは何か、およびJavaのJ2EEプロジェクトでそれを使用する理由が明確になることを願っています。

他にご不明な点がありましたらお知らせください。

Log4jを最新バージョンに更新します

CVE-2021-44228:Apache Log4j2 <= 2.14.1構成、ログメッセージ、およびパラメーターで使用されるJNDI機能は、攻撃者が制御するLDAPおよびその他のJNDI関連のエンドポイントから保護しません。

log4j 2.16.0以降、この動作はデフォルトで無効になっています。