build.xmlを使ったデプロイの征服:WebSphere 6におけるEARの例

アプリケーションのデプロイは、特にWebSphereのようなエンタープライズグレードのサーバーを扱うとき、非常に大変な課題です。開発者が直面する一般的な質問の一つは、Enterprise Archive(EAR)ファイルをデプロイするためにAntを使って効果的なビルドプロセスを設定する方法です。この記事では、WebSphere 6.1におけるEARアプリケーションのデプロイに特化したbuild.xmlファイルの作成の詳細な例を紹介します。このプロセスを簡素化し、アプリケーションをいつでもどこでも再コンパイルして再デプロイできるようにすることを目的としています。

EARデプロイの課題

Antを使用する理由

開発環境では、多くの開発者がRational Application DevelopmentからApache Antに移行しています。その理由は、Antの構造がシンプルで、使いやすいためです。Antはビルドプロセスを自動化することを可能にし、これがデプロイの一貫性を保つ上で重要です。

Antへの移行を仲間に納得させるためには、実用的な例とデプロイを管理するための容易な方法を提供しなければなりません。ここで、良く構成されたbuild.xmlが役立ちます。

環境のセットアップ

コードに入る前に、以下を準備しておくことが重要です。

  • 環境:適切なプラットフォーム(例:Fedora 8)でWebSphere Application Server(WAS)6.1を実行していることを確認してください。
  • ANT:Antのタスクを効果的に使用するために、Apache Antがあなたの環境に設定されていることを確認してください。

build.xmlの構造の理解

build.xmlファイルはビルドプロセスをガイドします。以下は、Antを使用してEARファイルをデプロイすることに焦点を当てたサンプル設定です。

アプリケーションのリスト表示

最初に、WASにインストールされているアプリケーションをリストするターゲットを作成します。

<?xml version="1.0"?>
<project name="project" default="wasListApps" basedir=".">
    <description>インストールされたアプリをリストするスクリプト。</description>
    <property name="was_home" value="/opt/IBM/SDP70/runtimes/base_v61/"/>

    <path id="was.runtime">
        <fileset dir="${was_home}/lib">
            <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${was_home}/plugins">
            <include name="**/*.jar"/>
        </fileset>
    </path>

    <target name="wasListApps">
        <taskdef name="wsListApp" classname="com.ibm.websphere.ant.tasks.ListApplications" classpath="${was.runtime}"/>
        <wsListApp wasHome="${was_home}"/>
    </target>
</project>

EARファイルのデプロイ

次に、同じbuild.xmlファイルにデプロイターゲットを設定します:

<project name="project" default="default" basedir=".">
    <description>WebSphere Application Server 6.1にEARをビルド/デプロイする</description>
    <property name="was_home" value="/opt/IBM/SDP70/runtimes/base_v61/"/>
    <path id="was.runtime">
        <fileset dir="${was_home}/lib">
            <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${was_home}/plugins">
            <include name="**/*.jar"/>
        </fileset>
    </path>
    <property name="ear" value="${env.HOME}/IBM/rationalsdp7.0/workspace/mywebappDeploy/mywebappEAR.ear"/>

    <target name="default" depends="deployEar"/>

    <target name="deployEar" depends="generateEar">
        <taskdef name="wsInstallApp" classname="com.ibm.websphere.ant.tasks.InstallApplication" classpath="${was.runtime}"/>
        <wsInstallApp ear="${ear}" failonerror="true" debug="true" taskname="" washome="${was_home}"/>
    </target>
</project>

主なセクションと考慮事項

デプロイに関する注意事項

  • 単独使用:アプリケーション名が現在使用中の場合、インストールターゲットは一度しか実行できません。必要に応じて、既存のアプリケーションを削除するためにwsUninstallAppタスクの使用を検討してください。
  • サーバー環境:このスクリプトは、必要な環境設定を利用するためにサーバーのプロファイルbinディレクトリから実行されることを意図しています。
  • エラーハンドリングfailonerror属性に注意してください。trueに設定すると、何か問題が発生した場合に実行が停止し、トラブルシューティングのチャンスが与えられます。

考慮すべき代替手段

Antを使うのが少し面倒に感じた場合は、**Java Management Extensions(JMX)**を使用することを検討してください。EARファイルを受け入れるファイルアップロードサーブレットをサーバーに書くことで、HTTP経由でデプロイメントMBeansを利用でき、デプロイプロセスがより柔軟になり、特定の開発環境に依存しなくなります。

結論

これらの構造化された例とガイドラインに従うことで、WebSphere 6でAntを使用してEARアプリケーションを効果的にデプロイするためのbuild.xmlファイルを作成し、実行するための充実した準備が整います。これにより、デプロイプロセスが簡素化され、開発チームとのコラボレーションもはるかに効率的になります。Antへの移行は最初は難しいと感じるかもしれませんが、実践と適切なリソースを用いれば、ワークフローを大幅にスリム化できるでしょう。

このガイドを参照しながら、独自のビルドプロセスを設定してください。コーディングを楽しんでください!