Maven プロジェクトの追加のディレクトリ規則にはどのようなものがありますか?

StackOverflow https://stackoverflow.com/questions/522197

  •  22-08-2019
  •  | 
  •  

質問

Maven 2 は、プロジェクトに標準のディレクトリ レイアウトを使用します。これについては、次のとおりです。

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

私が疑問に思っていることは次のとおりです。プレーンバニラ Java ライブラリ、Java EE、および WebApp プロジェクト以外の他のプロジェクトに対して推奨される規則はありますか?具体的には、ant ファイル、起動スクリプト、設定ファイル、サンプル アプリケーションなどを配置する場所です。

さらに、ファイルを src/ ディレクトリ ツリーの外に配置する場合の規則は何ですか?たとえば、ドキュメントを doc/ (src の兄弟として) の下に配置するのが一般的ですか?

これらの規約をまとめたページはありますか?そうでない場合は、他の読者が自分のプロジェクトの例を提供してもらえますか?

役に立ちましたか?

解決

デスクトップ アプリケーションの公式レイアウトは存在しないと思いますが、これが私たちが使用しているレイアウトです。

  • src/main/config - ${project.build.directory}/config にコピーおよびフィルターされた構成ファイル。
  • src/main/scripts - ${project.build.directory} にコピーおよびフィルタリングされた sh、bat、README、およびその他のプレーンテキスト ファイル。
  • src/main/bin - バイナリ ファイル ない フィルタリングされ、${project.build.directory} にコピーされます。
  • src/main/build - ビルド プロセスで使用されるが、アプリケーションには含まれない追加のスクリプト、ant ファイル、またはリソース。
  • src/main/assembly - アプリケーション アセンブリを作成するためのアセンブリ記述子。
  • Maven-dependency プラグインを使用して、依存関係を ${project.build.directory}/lib にコピーします。
  • すべてのプロジェクトで共有する標準のファイル タイプに加えて、config ディレクトリと lib ディレクトリが含まれる共有アセンブリ記述子 jar を使用すると、ボーナス ポイントが与えられます。含めるデフォルトのファイル タイプの適切なセットは、実行可能アクセス許可を持つ .sh、.bat、および .exe です。標準権限を持つ .jar、.zip、.txt、.pdf、.xml、.properties、.conf、.ico、.png、.jpg。
  • maven-jar プラグインを使用して、config ディレクトリと lib/ プレフィックスをクラスパスに追加し、実行可能な jar を作成します。
  • Maven-assembly プラグインとアセンブリ記述子を使用してアプリケーションのアセンブリを構築するインストーラー プロファイルを追加します。このアセンブリは、必要に応じて別のインストーラー プロジェクトで使用できます。
  • src/ レベルには他のものを置かないでください。代わりに、ドキュメントを src/site/ ディレクトリ内に置きます (例:本当に必要な場合は、src/site/sphinx) または src/doc。
  • 上記の設定をすべて親/企業の pom に入れて、すべてのプロジェクトと共有します。プロジェクト内の maven-dependency、maven-resources、maven-jar、および maven-assembly プラグインを参照するだけで、ほとんど設定なしでアプリケーション全体を構築できます (maven-jar プラグインの main-class を設定することを忘れないでください)。 。

他のヒント

私は余分な設定ファイルを置くメインフォルダは、SRC /メイン/ javaの/資源の下にあります。通常、私はそこの下にサブディレクトリを作成しました。テストは、独自のconfigファイルのsrc /テスト/リソースを持つことができます。

あなたは追加のリソースディレクトリを指定するのpom.xmlのビルドセクションのディレクティブを使用することができ、どこで、ターゲットディレクトリ内の特定の場所にファイルをコピーします。通常規則では、使用しようとしている言語やフレームワークのために生じます。その場合には混乱が親のpom.xmlで非表示にすることができます。

http://maven.apache.org/pom.html#Resources

scroll top