連載
» 2008年05月27日 00時00分 公開

Eclipseプラグインq4eでカンタンMaven入門(後編):Eclipse WTPを使ったWebアプリでもカンタンMaven (3/3)

[吉田英嗣,@IT]
前のページへ 1|2|3       

Cargoプラグインの設定とプロファイル

 前述の要件をCargo Maven2 Pluginを使って実現するため、Maven2のPOMファイルにプラグインを使うための設定を追加します。ただし、単純に自動デプロイするだけではなく、条件によってデプロイ先を変更できなくてはいけません。デプロイ先に合わせてPOMファイルを書き換えることもできますが、それは得策ではありません。そこで役立つのが「プロファイル」設定です。

 「プロファイル」を使うことにより、POMファイルに設定情報のバリエーションを定義でき、「あるプロファイルを有効化したときは、これらの設定を使う」ということができるようになります。

 Cargo Maven2 Pluginとプロファイルを設定したPOMファイルをリスト4に示します。「pom.xml」をXMLエディタで開き、直接編集します(太字が追加部分)。

リスト4 POMファイル
<project xmlns="http://maven.apache.org/POM/4.0.0"

……(省略)……

  <build>
    <finalName>samplewebapp</finalName>
    <plugins>
      <plugin> <!-- 【1】Cargo Maven2 Pluginの設定 -->
        <groupId>org.codehaus.cargo</groupId>
        <artifactId>cargo-maven2-plugin</artifactId>
        <configuration>
          <container>
            <containerId>tomcat5x</containerId>
            <type>remote</type>
          </container>
          <configuration>
            <type>runtime</type>
            <properties> <!-- (A)デプロイ先サーバの設定 -->
              <cargo.tomcat.manager.url>
                ${cargo.tomcat.manager.url}
              </cargo.tomcat.manager.url>
              <cargo.remote.username>
                ${cargo.remote.username}
              </cargo.remote.username>
              <cargo.remote.password>
                ${cargo.remote.password}
              </cargo.remote.password>
            </properties>
          </configuration>
          <deployer>
            <type>remote</type>
            <deployables>
              <deployable>
                <groupId>com.example</groupId>
                <artifactId>samplewebapp</artifactId>
                <type>war</type>
              </deployable>
            </deployables>
          </deployer>
        </configuration>
      </plugin>
    </plugins>

  </build>
  <profiles> <!-- 【2】プロファイルの設定 -->
    <profile> <!-- (B)プロファイル"IntegrationTest" -->
      <id>IntegrationTest</id>
      <properties>
        <cargo.tomcat.manager.url>
          http://itest.example.com:8080/manager
        </cargo.tomcat.manager.url>
        <cargo.remote.username>
          admin
        </cargo.remote.username>
        <cargo.remote.password>
          password
        </cargo.remote.password>
      </properties>
    </profile>
    <profile> <!-- (C)プロファイル"PerformanceTest" -->
      <id>PerformanceTest</id>
      <properties>
        <cargo.tomcat.manager.url>
          http://ptest.example.com:8080/manager
        </cargo.tomcat.manager.url>
        <cargo.remote.username>
          admin
        </cargo.remote.username>
        <cargo.remote.password>
          password
        </cargo.remote.password>
      </properties>
    </profile>
  </profiles>

</project>

【1】Cargo Maven2 Pluginの設定

 <plugin>要素によりCargo Maven2 Pluginを利用する設定を行います。その中の(A)の部分でデプロイ先サーバの設定を行っています。赤字で「${cargo.tomcat.manager.url}」のように記述した個所は、有効にしたプロファイルによって入る値が変わるようになっています。

【2】プロファイルの設定

 <profile>要素によりプロファイルの設定を行います。(B)(C)はそれぞれ2つのプロファイル(「IntegrationTest」と「PerformanceTest」)を定義しています。

 例えば、IntegrationTestプロファイルは結合テスト用のプロファイルを設定しており、もしこのプロファイルを有効にした場合には、(A)の「${cargo.tomcat.manager.url}」の個所に「http://itest.example.com:8080/manager」が入ることを意味しています。

自動デプロイ実行!

 では早速、デプロイ実行してみましょう。q4eでは、以下の処理を行います。

  1. [Profile]ビューを使って有効にするプロファイルを指定する
  2. [Maven2]メニューの[Execute Goal]で、Cargo Maven2 Pluginを実行する(実行前にデプロイ先のTomcatが起動していることを確認してください)

 [Profile]ビューは、[メニュー]の[ウィンドウ]→[ビューの表示]→[その他]から[Apache Maven]→[Profile]を選択すると表示されます(図7)。ビューにはPOMファイルに定義されているプロファイルの一覧が表示されますので、有効にしたいプロファイルをチェックします。

図7 [Profile]ビュー 図7 [Profile]ビュー

 次に、Cargo Maven2 Pluginの実行です。[Maven2]メニューから[Execute Goal]を実行し、図8のゴール指定画面でゴール名「cargo:deploy」を指定します。

図8 Cargo Maven2 Pluginの実行 図8 Cargo Maven2 Pluginの実行

 実行すると、WebアプリケーションsamplewebappがTomcatにデプロイされます。実際にデプロイされているかどうかはTomcatのWeb アプリケーションマネージャURLにブラウザからアクセスして確かめてみましょう。アプリケーション一覧にsamplewebappが追加されているはずです(図9)。これで、コンパイル・テスト・パッケージングだけではなくデプロイも、Maven2(q4e)で自動化できるようになりました!

図9 Tomcat Webアプリケーションマネージャの画面 図9 Tomcat Webアプリケーションマネージャの画面

 一度デプロイしたものをサーバから削除したい場合には、図8の[Execute Goal]において、ゴール名に「cargo:undeploy」を指定して実行します。また、再デプロイしたい場合は「cargo:deployer-redeploy」を指定します。

補足 「Mavenコマンドライン実行でのプロファイル指定」

q4eでは、有効にしたいプロファイルを[Profile]ビューで指定していますが、q4eを使わずにコマンドラインからMavenコマンドを実行する際にプロファイルを指定したい場合、「-P」オプションを使います。具体的には以下のように実行します。

C:\>mvn -P <プロファイル名> cargo:deploy


注目のフレームワークWicketもカンタン!

 このように、本稿では前後編と2回にわたって、ビルドプロセスを自動化するMavenとそれをEclipse上で利用するためのq4eプラグインを紹介しました。Mavenをうまく使っていただき、皆さんの現場でも自動化による生産性向上を図っていただきたいと思います。

 また、今回はシンプルなWebアプリケーションを作成する例でしたが、Maven&q4eを使えば、「Apache Wicket」などのWebフレームワークを使ったプロジェクトもカンタンに始めることができます。

 ちなみに、Wicket用のプロジェクトを作成する場合は、Maven2プロジェクト生成ウィザードのarchetype選択の際に、「wicket-archetype-quickstart」を指定します。具体的な方法については「q4eでWicketプロジェクトを開発するデモ動画」をご覧ください。

 一般的にフレームワークを使った開発の場合、その準備作業において数多くの依存ライブラリのダウンロードや設定が必要になります。しかし、Maven&q4eを使えばそのようなダウンロードや設定が完了しているプロジェクトを一発で自動生成できます。そのうえ、ビルドプロセスも自動化できているわけですから、素晴らしいですね!

 Mavenについては、継続的インテグレーションを実現する「Continuum」との連携など、今回紹介できなかった重要な機能がまだまだあります。

編集部注継続的インテグレーションついての詳細を知りたい読者は、記事「継続的インテグレーション&テスト環境の構築」をご参照願います。

 さらに、Mavenを知るためのお役立ちサイトを以下に紹介しておきますので、ご参考にしていただければ幸いです。

@IT関連記事

CoolなEclipseプラグイン
役立つプラグインを毎月紹介。第1回は「Javaのプロパティファイルエディタ」「Tomcatコントローラ」「HTML/JSP/XMLエディタ」
第2回 ソフトウェアの品質向上を支援するプラグイン
第11回 ビルドを効率化するEclipseプラグイン
第15回 バージョン管理に便利なSubversiveプラグイン
第23回 Mylyn&Tracでリズムに乗ってタスクを大掃除♪
第24回 これはすごい!? コード品質のカイゼン化プラグイン2種

明日からできるプロジェクト管理
本連載では、プロジェクトに秩序をもたらすさまざまな手法を、開発プロジェクトの段階を追って解説していく。第1回目は進ちょく管理だ
第2回 成果物・文書管理にすぐ使えるオープンソース
第3回 ビルド管理を楽にするオープンソースツール一覧
第4回 単体テストの品質をチェックするには
情報マネジメント > プロジェクト管理

Java開発支援ツールの定番
Javaオープンソースセンター(2) Javaオープンソースには開発に便利なツールが豊富にある。今回は中でも定番とされるAnt、Log4j、XDocletなどを紹介する
Java Solution」フォーラム 2005/4/7

Eclipseからビルドツール「Ant」を使う
連載:Eclipse徹底活用(1) Eclipse 2.1ではAnt対応が強化された。EclipseとAntを組み合わせて使うと、ソースファイルがどんなに多くてもトラブルなくビルドが行える
Java Solution」フォーラム 2003/4/23

AntとXDocletでEJB開発を効率化
[連載]現場に活かすJakarta Project(3) ファイルが多いために煩雑になりやすいEJB開発。AntとXDocletを使うと非常に効率よく開発ができ、その問題が解決できます
Java Solution」フォーラム 2003/2/19

Eclipseで使えるテストツールカタログ
統合開発ツールにEclipseを選択する開発現場に、テストの効率化、ソフトウェア品質の向上のヒントを提供する

快適なXPドライビングのすすめ
理論と実践は根本的に違う。本連載ではEclipseなどのツールを活用しながらXPの快適なドライビング方法を伝授する
第4回 EclipseとJUnitによるテスティング
第5回 テストファーストでコードを作成する
情報マネジメント > アーキテクチャ

Webサイト構築に必要なさまざまなテスト手法
[連載]Java初心者のためのWebシステム入門(9) Webサイトのカットオーバーに備えて行う必要のあるテスト項目と手法の概要を解説します
Java Solution」フォーラム 2002/9/26

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。