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フェイルセーフプラグインで使用される統合テスト用に予約されています
  • maven-project / src / site Mavenサイトプラグインを使用して作成されたサイトドキュメント
  • 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. 結論

この記事では、ApacheMavenプロジェクトの標準のディレクトリレイアウトについて説明しました。

Mavenプロジェクト構造の複数の例は、GitHubプロジェクトにあります。