WeBlowg Side


2008-03-19 Wed 06:45

Mavenでアプリケーションの配備を簡単に


今までの現場では、ちゃんとビルドツールを導入している所は残念ながら少なかったです。
クラスファイルを手作業でコピーしている所や、
ひどい所になるとEclipse上からしかアプリケーションサーバを起動する術を知らず、
なぜか検証用サーバにEclipseを入れようとする現場まで。。。。。

一度設定してしまえば楽になるビルドツールはWeb Javaプログラマーの必須知識でしょう。
ビルドツールと言えばWicket In ActionのChapter3で丁寧な解説のあるMaven2。
Jarの定義、ビルド、Warの作成等、ビルドツールとして基本的な部分は抑えてたけど、
Tomcatの配備までmvnコマンド一発で出きるようにする設定はやっていなかったので、調べてみた。

Tomcatへの配備を行うにはTomcat Maven Pluginが必要です。
まだアルファバージョンだけど、我が家の環境では問題なく動きました。

pom.xmlの<plugins>ディレクティブに下記を設定します。
 <plugin>
     <groupId>org.codehaus.mojo</groupId>
       <artifactId>tomcat-maven-plugin</artifactId>
       <configuration>
         <server>myserver</server>
         <url>http://www.example.com:8080/manager</url>
       </configuration>
 </plugin>
配備先のTomcat ManagerのURLも設定しています。上記例ではhttp://www.example.com:8080/managerです。
次にTomcat Managerにアクセスするためのユーザとパスワードを~/.m2/settings.xmlに設定します。
 <servers>
   <server>
     <id>myserver</id>
     <username>hoge</username>
     <password>fuga</password>
   </server>
 </servers>
<id>ディレクティブにはpom.xmlの<server>ディレクティブに設定したサーバ名と同じものを設定します。

まずは配備されているアプリケーション一覧を表示させてみて、設定がうまくいったか見てみます。
$ mvn tomcat:list
実際に配備してみます。
$ mvn tomcat:deploy
mvn tomcat:deployで配備したアプリケーションを再配備します。
$ mvn package tomcat:redeploy

それにしてもMavenには他にも色々プラグインがあるみたいで、
この辺追っかければ色々幸せになれそう。

Comment:

>検証用サーバにEclipseを入れようとする現場まで。。。。。
これはあまりにも酷いですね・・・。
そんな環境を構築する人は根本的に出直して来いと言いたい。
↑そもそもantの使い方すら知らない可能性がありますもんね・・。

Mavenに関しては結構興味があって調べたこともあるのですが、企業によっては外部とのネットワークが遮断されていたりで、まず各種ライブラリ群の配置などをローカル側に構成する必要がある。ってことで断念してたのですが、いつのまにやらMaven2になって・・・。

最近では自動ビルド系のツール類も充実してきてるので、そのあたりと合わせて調べてみたいものの一つですね。

-- Saxman
2008-03-21 Fri 11:15

>企業によっては外部とのネットワークが遮断されていたりで
この辺、頭の痛い所ですね。
こういう場合はローカルリポジトリを作って、
ローカルネットワーク内で構成するとかが正解なんかなぁ?

Mavenを前提としたプロジェクトで、どこまでをソース管理すべきかってのも、
調査したい所です。

-- tma
2008-03-23 Sun 05:37

>ローカルネットワーク内で構成するとかが正解なんかなぁ?
たぶん、業務プロジェクトで使用する場合はライブラリのバージョンの関係もあるので、どちらにせよローカルリポジトリを作る必要があるような気がしますね。

>Mavenを前提としたプロジェクトで、
そもそもMavenを使用しているプロジェクトってどれくらいあるんでしょうね。
当社(当部署で)でも以前Mavenに関して知っている人いませんか?って問い合わせ来ましたけど、、誰も手を挙げず。
私自身もJavaのプロジェクトはあまり経験してませんが、未だ使っている所を見たことがありません。
自動ビルド、デプロイ関係は大体antとシェルで済ませていましたね。
(私もそうやってきた人ですが・・・)

-- Saxman
2008-03-23 Sun 23:18

>業務プロジェクトで使用する場合はライブラリのバージョンの関係もあるので、
この点、Mavenはバージョンも指定できるんですけど、
企業としては外部のリポジトリに頼るのも不安な部分もあるだろうから、
ローカルリポジトリは作ることになるんかな?

AntとShellでも同じ事ができるんだろうけど、大抵のビルドでやることをうまくパッケージ化して、
車輪の再発明をしなくて済むようにした所が、Mavenの功績なんでしょうね。

-- tma
2008-03-25 Tue 20:57



画像に書かれている文字列を入力してください:

名前 :
コメント :



最近のコメント
tma
Saxman
Saxman
tma
Saxman

最近のエントリー
Gentoo の起動時間測定と高速化
Wicket In Action Chapter7読了
Wicket In Action Chapter6読了
Eclipse Europaを試してみた
プログラマは入力を信じちゃいけない