後までアーキタイプを気にしないでください
Mavenについて知っておく必要があるすべての情報については、Webサイトでいくつかの本を読んでください。しかし、それはあなたが達成しようとしているものに対して少しやり過ぎです。
開始するには、次のようにWebアプリケーションの標準Maven構造に従ってWebアプリケーションをレイアウトします。(これにはMavenアーキタイプは必要ありません。これは単なる標準フォルダーの集まりであり、2分で作成できます)。
src/main/java
-本番Javaコードが含まれています
src/main/resources
-プロダクションクラスパスリソース(例:Springコンテキスト)が含まれます
src/main/webapp
-(WEB-INF / web.xmlを含むがlibフォルダーを含まない)
src/test/java
-テストJavaコードが含まれています
src/test/resources
-テストリソースが含まれます(例:Webサービステスト用のXMLフィードなど)
基本的なプラグイン
次のステップは、多数のプラグインを選択することです。通常の容疑者は、明らかに、クリーン、コンパイル、およびリソースをサポートしている人です(Mavenの一部として提供されますが、構成できます)。その後、surefireユニットテスターとWARプラグインが必要になります。これで、非常に基本的なWebアプリケーションを作成できます。
より高度なプラグイン
次のステップは、FindbugsとPMDプラグインを導入することです。これにより、コードを徹底的に調べ、さまざまな潜在的な問題を報告できます。おそらく、ソースコードの相互参照用のJXR、TODOおよびREFACTORタグの追跡用のタグリストなどが必要になります。何より...
... WebアプリケーションにJettyプラグインを使用する
Jettyプラグインを使用して、IDE内でWARファイルを実行し、デバッグを容易にします。それは速くて小さく、仕事を本当に速く終わらせます。Mavenビルドの一部としてJettyを使用すると、複雑なサーバーパネルを構成したIDEを必要とせずに、任意のマシンでプロジェクトをテストできます。また、他のWARファイルへの依存関係を宣言できるため、「mvn clean jetty:run」という単一のコマンドで、複数のWebアプリケーションで構成される完全な作業環境を生成できます。これはどこでも機能し、テストJNDI構成を提供して、Springによって注入されたデータソースをすべて外部的に構成することもできます。このJettyアプローチと標準のデモHTMLページ(src/test/resources/demo.html
)作業環境を整えようとする開発者の数時間を節約できます。1つのコマンドで完了です。シンプル。
IDEの構成
Mavenを使用すると、Eclipse、Netbeans、そしてもちろん私の個人的なお気に入りのIntellijなど、すべての大物がサポートしているので簡単です。IDEでpom.xmlを指定するだけで、リストされているすべての依存関係が自動的に削除されます。これ以上いじくり回す必要はありませんWEB-INF/lib
。Eclipseでは、通常File | インポート... | Mavenプロジェクト| pom.xml。
Hudsonとの統合
最初にHudson(単なるwebapp)をインストールし、次に適切なバージョンをチェックアウトするようにバージョン管理システムをターゲットにします。最後のステップは、Mavenを使用してビルドを実行するように構成することです。明らかに、Mavenをビルドマシンにインストールする必要があります(開発マシンと異なる場合)。
ハドソンはスナップショットのビルドのみを行います
Hudsonにスナップショットビルドを実行させ、リリースビルドを手動プロセスに任せます。このアプローチを使用すると、開発者はスナップショットリビジョン(1.0.0-SNAPSHOTなど)でコードを共有でき、ビルドを渡すことができる場合にのみ、チームリポジトリで共有されます。通常、Hudsonは「mvn clean deploy」を実行しますが、ビルドごとに小さなプロジェクトWebサイトを作成するため、「site」目標を含めることもプロセスの一部になる場合があります。チームの開発者は、Maven依存関係管理プロセスを通じて、更新されたスナップショットビルドをプロジェクトに自動的に含めます。
ハドソンは、あらゆる種類のメトリックをサポートできる豊富なプラグインを提供しています。私の個人的なお気に入りは、プロジェクトごとに経時的に合格するテストの数を追跡することです。単体テストの数とカバレッジが増え続けていることを経営陣に示すことは素晴らしいことです。
一般的なセットアップガイダンス
リポジトリを少なくとも次の構造に分割します。
- チームリリース-リリースされたすべての生産成果物はここに行く
- team-snapshot-すべてのスナップショット開発アーティファクトはここにあります
- third-party-release-サポートするすべてのサードパーティライブラリ(Spring、Hibernateなど)
開発者ユーザーアカウントは、スナップショットまたはリリースのいずれかのチームリポジトリに書き込むことができません。これにより、開発者は急いでいる場合にハドソンをバイパスでき、すぐに標準になります。
すべてのサードパーティのソース、javadocs、およびSHA署名を常にダウンロードするようにしてください。Jarvanaは、見つけるのが難しいすべてのクラスのための優れたリポジトリエクスプローラです。
NexusやArtifactoryなどのリポジトリマネージャーをインストールして、増え続けるリポジトリをより適切に制御できるようにすることを検討してください。