SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Eclipse Web Tools PlatformとMavenの統合

WTPとMaven2を使ったアプリケーション開発例

  • X ポスト
  • このエントリーをはてなブックマークに追加

WTPからのWebアプリケーションの起動

 それでは、デバッグ機能を使ってみましょう。以下の手順を実行してください。

  1. doGetMethodサーブレットにブレークポイントを設定します。
  2. プロジェクトを右クリックし、[Debug As]を実行してアプリケーションを起動します(図10)。
  3. [Debug on Server]を選択します。
  4. [Choose an existing server]を選択できない場合は、[Manually define a new server]を使用します。
図10 Webアプリケーションの起動:プロジェクトを右クリックし、「Debug As」を実行してアプリケーションを起動
図10 Webアプリケーションの起動:プロジェクトを右クリックし、「Debug As」を実行してアプリケーションを起動

 ウィザードの次のページ画面で、プロジェクトが[Configured project]の下に表示されていることを確認します。JSPやサーブレット、あるいは他のコードなどにブレークポイントを設定し、WTPのデバッグ機能を試してみてください。うまく動作しない場合は、図11に表示されているサーバーを削除した後に再起動する必要があるかもしれません(最初に再起動する必要はありません)。

図11 サーバービュー: うまく動作しない場合は、このサーバーを削除した後に再起動する
図11 サーバービュー: うまく動作しない場合は、このサーバーを削除した後に再起動する

 Eclipseによってブラウザが呼び出され、アプリケーションが表示されます。ブレークポイントを設定した場所によっては、Debugパースペクティブが表示される場合もあります。また、実行時にブレークポイントを設定して結果を見ることもできます。あるいは、[Run As]→[Run On Server]を選択して同じように起動することも可能です。

WTPとM2プラグインの統合の確認

 出力およびデバッグセッションの様子から、統合が成功しているかどうかを確認できます。

注意
 サーブレット、単純なクラス、あるいはJSPに変更を加えると、出力が大きく変化しますが、これはWTPがすべての変更をサーバーに送出しているからです。この機能が必要ない場合は、いつでもサーバーを停止するか、前述のサーバービューでサーバーを削除してかまいません。Mavenゴールであるpackageを実行しても、この機能に一切影響はありません。実際、その他すべてのMavenゴールも同じように実行することが可能です。

その他の重要なポイント

 M2Eclipseプラグインは便利なだけでなく、WTPと確実に統合させることもできます。ただし、そのためには、たとえ今回使ったようなごく簡単なWebアプリケーションプロジェクトの場合でも、いくつか設定が必要になります。

 以下に、M2とWTPを統合する際に、この記事で解説したテクニックに加えて頭に入れておくべき重要なポイントを紹介します。

  1. .classpathファイルを保持する必要はありません。また、以前にMaven Eclipseプラグインで使用されていたeclipse:eclipseゴールを使用する必要もありません。pom.xmlは個々のjarを理解するための有効なメタデータとして使用されるため、.classpathの方が内容はかなり少なくなります。リポジトリから参照されるすべてのjarが.classpathに含まれるわけではありません。
  2. WTPとM2の統合において重要なのは、フォルダ構成やJavaのビルドパス設定、および.settings/org.eclipse.wst.common.componentファイルを理解することです。
  3. ワークスペース内の.metadata\.plugins\org.eclipse.wst.server.core\フォルダを調べれば、配備した実際のアプリケーションについてすべてを学ぶことができます。[Run on Server]の実行時にWebアプリケーションが実際にアセンブルされる場所を見つけるには、サブフォルダを調べることも必要になります。詳しく調べれば、アセンブルされるアプリケーションのWEB-INF/libフォルダ内に、servlet-api jarやJUnit jarが存在しないことがわかります。その理由は、servlet-api jarのscopeにはprovidedが、JUnit jarのscopeにはtestがそれぞれ設定されているからです。M2プラグインの以前のビルドでは、この件で問題が起きていました。
  4. Maven 2を使用する場合、MAVEN_HOMEなどの環境変数は、JAVA_HOME(およびそのパス)を除き一切必要ありません。また、JAVA_HOMEが必要なのはMaven 2をコマンドラインから実行する場合だけです。
  5. M2プラグインはMaven Embedderと呼ばれるMavenのコンポーネントを使用します。これはMaven バージョン2.1以降、コマンドラインインターフェース(CLI)で使用されています。
  6. Mavenを統合したまま非IDEベースで通常のビルドプロセスを実行する場合、Mavenをコマンドラインから使用する必要があります。Mavenをコマンドラインから実行し、WebアプリケーションをTomcatに配備する場合は、Maven 2のマニュアルやMaven 2の書籍、『Better Builds with Maven』を参照してください。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Raghuraman Ramaswamy(Raghuraman Ramaswamy)

Xebia IT Architectsの上級コンサルタント。7年間のJ2EE開発経験がある。Sun認定Javaプログラマ、およびビジネスコンポーネントディベロッパの資格を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2321 2008/09/05 11:06

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング