Apache Maven標準ディレクトリレイアウト
1. 前書き
Apache Mavenは、Javaプロジェクト用の最も一般的なビルドツールの1つです。 依存関係とリポジトリの分散化だけでなく、プロジェクト全体で統一されたディレクトリ構造を促進することも重要な側面の1つです。
この簡単な記事では、典型的なMavenプロジェクトの標準的なディレクトリレイアウトについて説明します。
2. ディレクトリレイアウト
典型的なMavenプロジェクトには、pom.xmlファイルと、定義された規則に基づくディレクトリ構造があります。
└───maven-project
├───pom.xml
├───README.txt
├───NOTICE.txt
├───LICENSE.txt
└───src
├───main
│ ├───java
│ ├───resources
│ ├───filters
│ └───webapp
├───test
│ ├───java
│ ├───resources
│ └───filters
├───it
├───site
└───assembly
デフォルトのディレクトリレイアウトは、プロジェクト記述子を使用してオーバーライドできますが、これは一般的ではなく推奨されません。
この記事では、各標準ファイルとサブディレクトリの詳細について説明します。
3. ルートディレクトリ
このディレクトリは、すべてのMavenプロジェクトのルートとして機能します。
通常ルートにある標準ファイルとサブディレクトリを詳しく見てみましょう。
-
maven-project/pom.xml –Mavenプロジェクトのビルドライフサイクル中に必要な依存関係とモジュールを定義します
-
maven-project/LICENSE.txt –プロジェクトのライセンス情報
-
maven-project/README.txt –プロジェクトの概要
-
maven-project/NOTICE.txt –プロジェクトで使用されているサードパーティライブラリに関する情報
-
maven-project/src/main –アーティファクトの一部となるソースコードとリソースが含まれています
-
maven-project/src/test –すべてのテストコードとリソースを保持します
-
maven-project/src/it –通常、Maven Failsafe Pluginによって使用される統合テスト用に予約されています
-
maven-project/src/site –Maven Site Pluginを使用して作成されたサイトドキュメント
-
maven-project/src/assembly –バイナリをパッケージ化するためのアセンブリ構成
4. src/mainディレクトリ
名前が示すように、src/mainはMavenプロジェクトの最も重要なディレクトリです。 アーティファクトの一部であると思われるものはすべて、jarまたはwarであり、ここに存在する必要があります。
そのサブディレクトリは次のとおりです。
-
src/main/java –アーティファクトのJavaソースコード
-
src/main/resources –構成ファイルおよびi18nファイル、環境ごとの構成ファイル、XML構成などのその他のファイル__
-
src/main/webapp – Webアプリケーションの場合、JavaScript、CSS、HTMLファイル、ビューテンプレート、画像などのリソースが含まれます
-
src/main/filters –ビルドフェーズ中にresourcesフォルダーの構成プロパティに値を挿入するファイルが含まれます
5. src/testディレクトリ__
ディレクトリsrc/testは、アプリケーションの各コンポーネントのテストが存在する場所です。
これらのディレクトリまたはファイルはいずれもアーティファクトの一部にならないことに注意してください。 そのサブディレクトリを見てみましょう。
-
src/test/java –テスト用のJavaソースコード
-
src/test/resources –テストで使用される構成ファイルなど
-
src/test/filters –テストフェーズ中にresourcesフォルダーの構成プロパティに値を挿入するファイルが含まれます
6. 結論
この記事では、Apache Mavenプロジェクトの標準のディレクトリレイアウトについて説明しました。
Mavenプロジェクト構造の複数の例は、GitHub projectにあります。