SHOEISHA iD

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

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

japan.internet.com翻訳記事

Eclipse Web Tools PlatformとMavenの統合

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

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

プロジェクトのセットアップ

 以降では、WTPの動的Webアプリケーションプロジェクトを作成し、M2プラグインを使用してMavenのサポートを有効化します。具体的には、以下の作業について詳しく説明していきます。

  • プロジェクトのフォルダ構成とJavaのビルド設定をMavenに合わせて変更する
  • 特定のWTPメタデータファイルをMavenに合わせて変更する
  • WTPがpom.xmlを使用するように設定する

 その前に、MavenのWebプロジェクトを作成し、M2プラグインの概要を理解しておきましょう。

Maven Webプロジェクトの作成

 [File]→[New]→[Other]→[Maven]→[Maven Project]の順に選択し、[New Maven2 project]ウィザードを起動します。表2に示す値をウィザードの各ページに入力します。赤字で示した部分以外は、デフォルト値をそのまま使用してください。

表2 Maven 2プロジェクト作成時の入力値
ページ データ
ページ1  
Project Name tempForRef
[Create in Workspace]ラジオボタン このボタンを選択
ページ2  
Group ID tempForRef
Artifact ID tempForRef
Version 0.0.1-SNAPSHOT
Packaging war
Description 空白、または適切な説明を入力
Project Layout src/main/java、src/main/resources、src/test/java、src/test/resources、src/main/webappのチェックボックスをオンにする
ページ3 変更なし

 このM2プロジェクトをWTPの動的Webプロジェクトに変換できるのか疑問に思うかもしれません。もちろん、変換は可能です。ただし、WTPの動的WebプロジェクトをM2プロジェクトに変換する方が、M2プロジェクトを動的Webプロジェクトに変換するよりも簡単です。

 M2プロジェクトが作成できたので、次は動的Webプロジェクトを作成します。

動的Webプロジェクトの作成

 [File]→[New]→[Other]→[Web]→[Dynamic Web Project]の順にメニューを選択して、動的プロジェクトを新規作成します。プロジェクト名をsample1にし、それ以外はすべてデフォルトのままにします。Java EEパースペクティブに進むかどうか聞かれたら、[Yes]をクリックして先に進みます。

 表3に各ページの値を示します。値の入力が必要なのはプロジェクト名だけです。

表3 動的Webプロジェクト作成時の入力値
ページ データ
ページ1  
Project Name sample1
Project Contents デフォルト値を使用(ディレクトリ)
Target Runtime Apache Tomcat v6.0
Configurations Apache Tomcat v6.0のデフォルトの設定
ページ2  
Dynamic Web Module デフォルト値を使用
Java デフォルト値を使用
ページ3  
Context Root sample1
Content Directory WebContent
Java Source Directory src

 次は、このプロジェクトでM2プラグインを使用します。

Mavenの有効化

 プロジェクトを右クリックし、ポップアップメニューで[Maven]→[Enable Dependency Management]の順に選択してMavenを有効化します。POM作成ウィザードが起動します(図3)。

図3 POM作成ウィザード:POM作成ウィザードを起動してMavenを有効化
図3 POM作成ウィザード:POM作成ウィザードを起動してMavenを有効化

 [Packaging]に[war]を選択して[Finish]ボタンをクリックします。

 統合を完了するために、Mavenを有効化した後で以下の手順も実行する必要があります。

  1. Mavenのフォルダ構成を作成する
  2. ソースフォルダを更新する
  3. WTPの内部をいくつか自分で調整する
  4. J2EEモジュールの依存関係を設定する

Mavenのフォルダ構成の作成

 [Window]→[Show View]→[Other]→[General]→[Navigator]の順に選択してナビゲータビューを開きます。動的プロジェクトのフォルダ構成は、デフォルトではMavenと異なっており、これが統合を妨げています。プロジェクトのフォルダ構成を、Mavenの典型的な構成に変更してください。これには以下の2とおりの方法があります。

  1. ナビゲータビューを使用して、先ほど作成したMavenプロジェクト(tempForRef)に移動します。srcフォルダとtargetフォルダをコピーします。再度ナビゲータビューでsample1プロジェクトに移動し、そこにフォルダを間違えないように貼り付けます。
  2. [File]→[New]→[Folder]の順に選択して、src/main/java、src/main/resources、src/main/webapp、src/test/java、src/test/resources、target/classes、target/test-classesの各フォルダを作成します。

ソースフォルダの更新

 動的プロジェクトのJavaビルド設定(ソースフォルダとアウトプットフォルダ)も、デフォルトではM2との統合が可能な状態ではありません。Javaコード用のソースフォルダの設定が必要です。これは手動でやることも、メニューから自動的に設定することもできます。手動であれば、わずかな手間ですべての設定を一度に行えるので、ここでは手動で行うことにします。

 sample1プロジェクトで、ナビゲータビューを使用して.classpathファイルを開きます。このファイルの内容は以下のようなものです。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
     <classpathentry kind="src" path="src"/>
     <classpathentry kind="con" 
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse. jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> <classpathentry kind="con"
path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con"
path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con"
path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="build/classes"/> </classpath>

 実際のファイルは、これと完全に同じではないかもしれません。たとえば、このXMLに記述されているTomcatのバージョン情報は違う可能性もあります。また、org.eclipse.jst.j2ee.internal.module.containerのエントリはWTP 2.0.1にはありますが、WTP2.0にはありません。変更の必要がある箇所を太字で示していますので、XMLのテキスト全体をコピーして貼り付けるのではなく、このファイルを直接編集し、太字の箇所を変更してください。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
     <classpathentry kind="src" path="src/main/java"/>
     <classpathentry kind="src" path="src/main/resources"/>
     <classpathentry kind="src" output="target/test-classes" 
         path="src/test/java"/>
     <classpathentry kind="src" output="target/test-classes" 
         path="src/test/resources"/>
     <classpathentry kind="con" 
           path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
     <classpathentry kind="con" 
          path="org.eclipse.jst.server.core.container/org.eclipse.
                jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/>
     <classpathentry kind="con" 
          path="org.eclipse.jst.j2ee.internal.module.container"/>
     <classpathentry kind="con" 
          path="org.eclipse.jst.j2ee.internal.web.container"/>
     <classpathentry kind="con" 
          path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
     <classpathentry kind="output" path="target/classes"/>
</classpath>
注意
 実際の.classpathファイルに記述されたTomcatのバージョンは、これとは異なる可能性があります。編集時にTomcatの情報を書き換えないでください。また、編集後は必ず保存してください。

次のページ
WTP内での手動調整

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング