プロジェクトの説明 オブジェクト モデル
そもそも Maven が標準化したものの 1 つはプロジェクトの説明です。Maven が登場する前は、各 IDE には独自のプロジェクト ファイルがあり、プロジェクトとそのアセンブリに関する情報が (多くの場合はバイナリ形式で) 保存されていました。
Maven は、プロジェクトとは何か、プロジェクトをどのように構築するか、さまざまなタグを使用してプロジェクトにどのような依存関係があるかを説明する、XML ベースのユニバーサルなオープン スタンダードを考案しました。プロジェクトの説明は、通常pom.xmlという名前の 1 つのファイルに含まれています。
pom.xmlファイルの例:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>example.com</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<dependency>
<dependency>
<groupId>commons-io </groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</依存関係>
</依存関係>
</プロジェクト>
この例には次の 3 つのことが書かれています。
- Maven プロジェクト標準のバージョンに関する情報は青色です。
- プロジェクト自体に関する情報は赤色で表示されます。
- 中古ライブラリに関する情報は緑色です。
pom ファイルデバイスを詳しく見てみましょう。
Maven プロジェクトの構造
そしてすぐに質問になります: 最後の例の奇妙さに注意を払いましたか? プロジェクト コード自体に関する情報は含まれません。Java ファイル、リソース、プロパティ ファイル、HTML、ビルド スクリプトなどがどこに保存されるかについては言及されていません。
答えは簡単です。Maven がプロジェクトの設計を標準化したからです。プロジェクト内のコードを整理するにはいくつかのオプションがありますが、最も一般的なのは次のとおりです。
この構造は標準的な IDEA プロジェクトの後では少し特殊ですが、その点では普遍的です。人生で遭遇するプロジェクトの 90% は、このフォルダー構造になっています。
Maven プロジェクトを (IDEA またはコンソールを使用して) 作成する場合、指定された形式になります。ここですべてがどのように機能するかを見てみましょう。
srcフォルダーには、ご想像のとおり、プロジェクトのソース コードが含まれています。これには、mainとtest という2 つのサブフォルダーがあります。
/src/main/javaフォルダーは、プロジェクト内のすべての Java クラスのルートです。com.codegym.Cat クラスがある場合、それは/src/main/java /com/codegym /Cat.javaフォルダーにあります。テキストまたはバイナリ リソースがある場合は、/src/main/resourcesフォルダーに保存する必要があります。
/src/testフォルダーの構造は/src/mainフォルダーの構造に似ていますが、テストとそのリソースが含まれています。Maven 自体は、プロジェクトを構築するときに必要なテストを実行する方法を知っていますが、これについては別の講義で説明します。
プロジェクト内には/targetフォルダーもあり、Maven はビルド後にプロジェクトを保存します。大規模なプロジェクトには重要なビルド スクリプトが含まれることが多いため、このフォルダーには何も保存されません。
/targetフォルダーの 2 番目の目的は、中間ビルド結果をキャッシュすることです。大規模なプロジェクトをビルドする場合、Maven は変更された部分のみを再ビルドできるため、ビルド時間が数倍速くなります。
おまけに、プロジェクトのルートにあるのは pom.xml ファイルです。これには、プロジェクトに関して必要な情報がすべて含まれています。これについては後で説明します。
デバイスpom.xml
まず、pom ファイルは xml であるため、標準のヘッダーと名前空間の情報が含まれています。これはすべて純粋に XML 標準に関するものなので、詳しくは説明しません。それは次のことを意味します:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3 .org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
…
</プロジェクト>
また、通常、<project> タグ内の最初の行は、pom ファイル標準のバージョンの説明です。ほとんどの場合は 4.0 です。これも私たちには興味がありません。
興味のある最初の行は次のようになります。
<groupId>com.sample.app</groupId>
<artifactId>new-app</artifactId>
<version>1.0-SNAPSHOT</version>
Maven 標準で何を記述するか (プログラム、プロジェクト、モジュール、ライブラリなど) を改めて理解できないようにするために、これをすべて「アーティファクト」という言葉で呼びます。Maven の作成者を拒否できないのは、標準化への愛です。
表示される 3 つのタグの意味は次のとおりです。
- groupId - アプリケーションが属するパッケージにドメイン名を追加したもの。
- artifactId – 一意の文字列キー (プロジェクト ID)。
- version - プロジェクトのバージョン。
これら 3 つのパラメータは、アーティファクトを明確に説明するのに十分です。
さらに、プロジェクトの説明の後には、通常、プロジェクトで使用されるアーティファクト (ライブラリ) のリストがあります。次のようになります。
> <依存関係
> <groupId>commons-io</groupId>
<artifactId>commons-io</artifactId> <
バージョン>2.6</バージョン> </依存関係> </依存
関係
>
この例では、commons-io パッケージ バージョン 2.6 の commons-io ライブラリをプロジェクトに追加します。
ビルド時に、Maven はグローバル リポジトリでそのようなライブラリを見つけて、プロジェクトに追加します。ちなみに、これができるのは Maven だけではありません。
IDEA と Maven の連携方法
Intellij IDEA は Maven との連携に優れています。彼女は、そのようなプロジェクトを開いて自分で作成し、さまざまなビルド スクリプトを実行する方法を知っており、含まれるライブラリを完全に理解しています。
しばらくの間、独自の組み込み Maven も備えていますが、それでも自分でインストールして構成できる必要があるため、IDEA のこの機能については前述していませんでした。理論上、IDEA では 2 人の Maven 間で競合が発生する可能性があるため、Maven が 2 つ存在することを知っておくとよいでしょう。
IDEA で新しい Maven プロジェクトを作成する方法:
メニューの [ファイル] > [新しいプロジェクト] をクリックします。左側のメニュー項目「新規プロジェクト」を選択します。
いくつかの点を明確にしましょう。
- プロジェクト名;
- プロジェクトのフォルダー。
- プロジェクト言語は Java です。
- プロジェクトの種類は Maven です。
下部の [詳細設定] セクションで、IDEA は新しいプロジェクトの goupID、artifactID、およびバージョンを指定するように求めます。このデータは後でいつでも簡単に変更できます。提案されたものから選択するか、独自のものを入力します。
次に、標準で必要な場所にプロジェクトを作成します。その結果、次のような構造がわかります。
クラスとパッケージは java フォルダーに作成する必要があります。これについてはすでに説明しました。そして、簡単に対処できると思います。次に進む準備はできていますが、少し「飛ばして」しまった 1 つの重要な問題に少し戻りましょう。
GO TO FULL VERSION