1

私たちは、あなたがそれを何と呼ぼうとも、多くのモジュール/ピースを備えた複雑なプロジェクトを再構築することを計画しています。標準のディレクトリ構造に移行するために、Mavenファイル構造を採用したいと思います。

したがって、大きな問題は、Mavenのファイル構造の説明を誰かが提供できるかどうかです。ここでは、Mavenが話すすべてを掘り下げる必要はありません。

4

2 に答える 2

5

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.htmlを参照して ください

src/main/java      Application/Library sources
src/main/resources   Application/Library resources
src/main/filters    Resource filter files
src/main/assembly    Assembly descriptors
src/main/config      Configuration files
src/main/webapp      Web application sources
src/test/java      Test sources
src/test/resources   Test resources
src/test/filters     Test resource filter files
src/site            Site
LICENSE.txt          Project's license
README.txt        Project's readme

ところで、既存のプロジェクトでその移行を行いました。すべてを意図したとおりに機能させるのは非常に長く困難な作業でしたが、ようやく完了し、満足しています。


更新しました

多くのプロジェクトがある場合、プロジェクトごとに同じ構造になります

今、あなたがそれらをグループ化したいときに本当の問題が始まります。Mavenのドキュメントとベストプラクティスを読み、適切な構造を決定するのに苦労しました。

基本的な考え方は、関連するプロジェクトを共通のディレクトリ(モジュールと呼びます)にグループ化し、モジュールをリストせずにモジュール全体を処理できるようにすることです。ただし、モジュールをIDE(この場合はEclipse)で開くと、プロジェクト自体はそのモジュールに属しますが、サブプロジェクトとしては開かれません(その概念はEclipseには存在しません)。

最終的には厳密な階層になり、多くのMavenの問題から解放されました。

  • 実際のコーディングプロジェクト(Javaプロジェクト)は、常にディレクトリツリーのリーフです。IDEで開くのはこれらだけです。それらはタイプJAR、またはWARです。
  • それらの親/モジュールは常にタイプPOMです。Javaコードはありません。
于 2010-01-27T09:20:32.293 に答える
0

私は、Maven2.2.1とMaven3.0-alpha-6の両方で、多くのプロジェクトでJensと同じアプローチを使用してきました。POMモジュールはプロジェクトツリーのモジュール構造を定義し、JAR/WARモジュールは木。すべてのモジュールのバージョンは同じです。

利点:

  • プロパティまたは依存関係をモジュール階層の特定のレベルに配置すると、それらはすべてのサブモジュールに継承されます。
  • ツリーの適切なレベルに移動して「mvninstall」を実行するだけで、関連するモジュールをビルドできます。Mavenはそれに応じて正しいビルド順序を実行します。
  • リリースプラグインなどのさまざまなMavenプラグインは、このツリー構造に依存しています。
  • 最新のMavenEclipseプラグインはこの構造を非常にうまく処理でき、ツリーをフラットリストとして表します。プラグインには実験的な機能があり、いわゆる「シャドウ」アーティファクトが1回だけ表示されるようにします。これは、Eclipseでリソースを検索するときに役立ちます。

短所:

  • 延長には時間がかかります。たとえば、JARモジュールにサブモジュールが必要であると判断した場合、POMモジュール自体にコードを含めることはできないため、既存のJARモジュールをPOMモジュールに変換してから、その内容を新しく作成したJARサブモジュールに配布する必要があります。
  • すべてのPOMモジュールがEclipseに表示され、ビルドが多少遅くなる可能性があります。ただし、それらを閉じることができ、Eclipseは代わりにリポジトリからそれらを調達します。
于 2010-03-11T00:17:34.240 に答える