EclipseにおけるMavenの導入法、および簡単なWebアプリプロジェクトを作って動作確認。折角なのでコードはGithubで管理してみましょう、という記事です。
お恥ずかしながらこの手のツールチェインは殆ど実開発PJで利用したことはありません。いつまでも慣れたやり方にとらわれてはいけませんね、ということで気合を入れて入門していきたいところです。
環境
- IDE:Eclipse 4.3 (Kepler)
- ソース管理: GitHub
- ビルド自動化: Maven (3.1.1)
前提
以下が終わっている前提で話を進めています。
- GitHubアカウント登録とSSH公開鍵設定 - 参考サイト
- Mavenのインストール - 参考サイト
- Eclipseのインストール
- こちらのサイトからバージョン4.3.xのJava EE Developers向けのリリースをインストールします。
Eclipseに関連プラグインをインストール
Help > Eclipse Marketplace でキーワード検索して Install するだけでOKです。
- Mavenプラグイン (m2e)
- Gitプラグイン (EGit)
GitHubにレポジトリを作る
GitHubにログインし、公開レポジトリを作成します。
今回は適当に「maven_webapptmpl」ってな感じにして空のレポジトリを作成しました。
m2e設定
- Preferences > Maven と進んで畳み込みメニューを展開します。
-
Installentions で使用したいMavenインストールを追加して選択します。 Global settings で指定したインストールの
settings.xml
が選択されていることを確認します。 - User Settings でユーザ設定ファイルを選択します。上記Global settingsファイルと同じでもOKです。
EGit設定
- Window > Open Perspective > Git の順に選択してパースペクティブを開きます。
- Clone Git Repository から先ほど作成した「maven_webapptmpl.git」レポジトリをクローンします。プロトコルは「https」です。 Authentication にはGitHubアカウントの認証情報を記入します。
-
Finish
でリモートリポジトリが正常にCloneされれば完了です。
Maven Webアプリプロジェクトを作る
プロジェクトの新規作成
Maven Webアプリプロジェクトを作ります。ウイザードが開くので、適宜選択していけばOKです。
- Project Explorer で右クリック > New から Maven Project を探してクリック
-
Use default Workspace location にチェックが入っていることを確認して
Next >
をクリック -
Artifact Id が maven-archetype-webapp のものを選択して
Next >
をクリック - 任意の Group Id と Artifact Id (今回はwebappsampleとしました) 、 Version および Package を入力して
Finish
をクリック
pom.xmlの編集
この状態でビルドを行えばWARファイルを作ってくれます。
プロジェクトの文字コードをUTF-8に
プラットフォームローカルの文字コードを使っているとそのプラットフォーム依存なプロジェクトになってしまいます(実際Mavenビルドを行うと以下のようなWarningが出ます)。
Warning
Sun Dec 01 15:04:47 JST 2013
Using platform encoding (US-ASCII actually) to copy filtered resources, i.e. build is platform dependent!
pom.xml
に明示的にプロジェクトの文字コードを指定することで回避できます。
<project>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
Jettyプラグインでローカル動作確認
ビルドしたWARファイルをどこかのWebアプリケーションコンテナにデプロイして動作確認してもいいのですが、MavenのJettyプラグインを使えばEclipseから直接動作確認できます。これもpom.xml
で指定します。
<build>
<finalName>webappsample</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.17</version>
</plugin>
</plugins>
</build>
ビルドと動作確認
ちょっとソースを弄ってJettyプラグインで動作確認してみます。
-
/src/main/webapp/index.jsp
を適当に編集して保存(そのままでもいいです)。 - Project Explorer 上のMavenプロジェクトを右クリック > Run as から Maven Build を選択します。
-
Goals に「install」を記入して
Run
をクリックします。自動で依存プラグインのインストールとコンパイルが行われます。/target
ディレクトリ内にwarファイルができていればOKです。 - Project Explorer 上のMavenプロジェクトを右クリック > Run as > Run Configurations を選択します。
-
Goals に「jetty:run」と記入して
Run
をクリックします。 -
http://localhost:8080/webappsample
にアクセスします。意図した通りのIndex画面が表示されれば動作確認完了です。
プロジェクトをGithubにpush
- Project Explorer 上のMavenプロジェクトを右クリック > Team から Share Project を選択します。
-
Git が選択できるはずですので、選択して
Next >
をクリックします。 -
Repository から先ほどクローンしてきたローカルレポジトリを選択して、
Finish
を選択します。 - この時点では変更はコミットされていません。 Project Explorer 上のMavenプロジェクトを右クリック > Team から Commit を選択します。コミットメッセージを入力し、コミットするファイルを選択して Commit をクリックします。これでステージングが完了しました。
- リモートリポジトリ(GitHub)にpushします。 Project Explorer 上のMavenプロジェクトを右クリック > Team から Push to Upstream を選択します。特に問題なければGithubのリポジトリにプロジェクトがpushされたことが確認出来ると思います。
終わりに
今回はここまでです。
次回はこのWebアプリケーションをローカルのCloud Foundry環境にデプロイして実行してみます。