第6章 Maven2ベストプラクティス
Authors:YAMAMOTO Ryuzo
Cargo(注3)は、TomcatやJettyなどのアプリケーションサーバをラッピングし、アプリケーションサーバ
の起動や停止、Webアプリケーションの配備など、TomcatやJettyを自由自在に操作するJavaのライブラリ
です。
Maven 2、Maven 1、Antのプラグインが提供されています。
Cargo Maven 2 Pluginは、このCargoをMaven 2から利用するためのMaven 2プラグインです。
このプラグインを利用することで、リリース作業4.の「アプリケーションを配備(再配備)する」
を自動化できます。
Cargo Maven 2 Pluginによる配備(デプロイ)には、次の2つがあります。
- マシン内のTomcatに対するローカルデプロイ
- TomcatのManagerアプリケーションを利用したリモートデプロイ
本章では、後者を利用する場合を説明します。
Cargo Maven 2 Pluginはセントラルリポジトリには登録されておらず、CodehouseのMavenリポジト
リにて配布されていますので、pom.xmlにCodehouseのMavenリポジトリを追加する必要があります。
webdb-webappプロジュクトのpom.xmlにリスト1の設定を追加してください。
(注3)http://cargo.codehaus.org/
●リスト1 CodehouseのMavenリポジトリの追加
<project>
...
<pluginRepositories>
<pluginRepository>
<id>codehaus snapshot repository</id>
<url>http://snapshots.repository.codehaus.org</url>
<release>
<enabled>true</enabled>
</release>
</pluginRepository>
</pluginRepositories>
...
</project>
pom.xmlにCargo Maven 2 Pluginの設定を追加します(リスト2)。
設定すると、下記のコマンドにてデプロイ・アンデプロイが可能となります。
> mvn package cargo:deploy
> mvn cargo:undeploy
●リスト2 Cargo Maven 2 Pluginの設定
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<containerId>tomcat5</containerId>
<type>remote</type>
</container>
</configuration>
<configuration>
<type>runtime</type>
<properties>
<cargo.tomcat.manager.url>
http://localhost:18080/manager
</cargo.tomcat.manager.url>
<cargo.tomcat.username>tomcat</cargo.tomcat.username>
<cargo.tomcat.password>tomcat</cargo.tomcat.password>
</properties>
</configuration>
<deployer>
<type>remote</type>
<deployables>
<deployable>
<groupId>jp/gihyo</groupId>
<artifactId>webdb-webapp</artifactId>
<type>war</type>
</deployable>
</deployables>
</deployer>
</configuration>
</plugin>
</plugins>
...
</build>
...
</project>
それでは実際にリリースを試してみましょう。
あらかじめ配備するためのTomcatは起動しておいてください
(C:\webdb39\server\tomcat\bin\startup.bat)。
Tomcat起動後、webdb-webappディレクトリでコマンド「mvn package cargo:deploy」を実行してみ
ましょう。
「BUILD SUCCESSFUL」が表示されればリリースは成功しているはずです。
TomcatのManagerアプリケーション(http://localhost:18080/manager/html)に、ユーザ名tomcat、
パスワードtomcatでアクセスしてください。
アプリケーションの一覧に「/webdb-webapp」が表示されていますね。そのリンクをクリックしてみる
と「Hello World」が表示され、アプリケーションが無事配備されていることが確認できると思います。
次に、コマンド「mvn cargo:undeploy」を実行してみてください。
アプリケーションの一覧を再表示すると、「/webdb-webapp」が消えて配備解除(アンデプロイ)されていますね!
Cargo Maven 2 Pluginを使えば、ビルド・パッケージング・アプリケーションの配備までを「すべてMavenで実現」
できてしまいます。