garbagetown

個人の日記です

はじめの一歩

みんな大好き cubby ですが、チュートリアルmaven コマンドの実行から始まっていて敷居が高いと感じる人もいるのだそうです。*1
個人的にはブラウザを起動して blank.war をダウンロードして展開して WEB-INF/lib の下に mysql-connector をコピーして、とかの手間の方がよっぽど敷居が高いと感じるのですが、まあそこは人それぞれと言うことで、こんな風にしたら敷居って下がりませんかね、という開発環境構築手順を、備忘録も兼ねて書いてみます。
ちなみに読者層には友達のいない windows ユーザを想定しています。友達の多い mac ユーザや linux ユーザはどこか他所に行ってください。

Trac Lightning

maven をインストールして環境変数を設定して PATH を通してという手順は確かに面倒くさいので、Trac Lightning を入れてしまいましょう。
下記サイトから TracLightning-2.2.5.exe をダウンロードして実行します。

基本的にはイエスイエスのイエスマンで「次へ」を連打すればインストールは完了します。「コンポーネントの選択」では必ずデフォルトの「Java アジャイルインストール (Trac+SVN+Maven+Hudson)」を選択してください。

settings.xml

maven が参照する設定ファイル settings.xml を作成して、JAR ファイルを管理するローカルリポジトリを設定します。
こんなファイルをホームディレクトリ*2 配下の .m2 ディレクトリに作成します。

<?xml version="1.0" encoding="UTF-8"?>
<settings>
  <localRepository>D:/TracLight/maven/repository</localRepository>
</settings>

本当はこんなもん用意したくないのですが、ダサい windows ユーザが日本語でログインなんかしちゃっていた日にはホームディレクトリに \ 記号やらスペースやら漢字やらが入ってしまってどうでもいいところでハマるので、悪い事は言いませんから settings.xml は作った方がいいです。

AmaterasIDE

IDE は subversionmaven と連携できれば何でもいいのですが、ここでは eclipse 3.4 (Ganymede) に subclipse や m2eclipse などのプラグインを同梱した AmaterasIDE をお勧めします。
下記サイトから AmaterasIDE 2.0.6.exe をダウンロードして実行します。

こちらも基本的にはイエスイエスのイエスマンで「次へ」を連打すれば良いのですが、「コンポーネントの選択」では「完全」を選択してください。*3

DevLoader

AmaterasIDE を起動して sysdeo-tomcat プラグインの設定を適当に済ませたら、このあたり を参考にして tomcat に開発用クラスローダを仕掛けておきます。

archetype:generate

スタートメニューから「Trac」->「コマンドプロンプト」を選択すると適当に環境変数を設定した状態でコマンドプロンプトが開くので

D:\TracLight\bin>SET TRAC_LIGHT_HOME=D:\TracLight
D:\TracLight\bin>SET PYTHONHOME=D:\TracLight\python
D:\TracLight\bin>SET APR_ICONV_PATH=D:\TracLight\CollabNetSVN\httpd\bin\iconv
D:\TracLight\bin>SET PATH=D:\TracLight\python;
D:\TracLight\python\Scripts;
D:\TracLight\CollabNetSVN;
D:\TracLight\CollabNetSVN\httpd\bin;
D:\TracLight\Graphviz\bin;
D:\TracLight\maven\bin;
D:\TracLight\bin;
(snip)
D:\TracLight\bin>

適当なディレクトリに移動して mvn archetype:generate を実行します。

D:\TracLight\bin>cd d:\work
D:\work>mvn archetype:generate -DarchetypeCatalog=http://cubby.seasar.org/

そうすると関連する jar がドカドカ落ちてきた後、maven からいくつか質問されます。

(snip)
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.jar
24K downloaded
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextCla
ssLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:generate]
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-arc
hetype-quickstart:1.0)
Choose archetype:
1: http://cubby.seasar.org/ -> cubby-s2-archetype (Cubby 2.0.0-rc2 S2Container Integration)
2: http://cubby.seasar.org/ -> cubby-guice-archetype (Cubby 2.0.0-rc2 Guice Integration)
3: http://cubby.seasar.org/ -> cubby-spring-archetype (Cubby 2.0.0-rc2 Spring Integration)
4: http://cubby.seasar.org/ -> cubby-archetype (Cubby 1.1.6)
Choose a number:  (1/2/3/4):

お好みのプロジェクトタイプを選択して、プロジェクトに必要な情報をいくつか入力します。

Choose a number:  (1/2/3/4): 1
Downloading: http://maven.seasar.org/maven2//org/seasar/cubby/cubby-s2-archetype/2.0.0-rc2/cubby-s2-archetype-2.0.0-rc2.jar
32K downloaded
Define value for groupId: : org.garbagetown
Define value for artifactId: : test
Define value for version:  1.0-SNAPSHOT: : 0.1.0
Define value for package:  org.garbagetown: : org.garbagetown.test
Confirm properties configuration:
java-source-version: 1.6
java-target-version: 1.6
cubby-version: 2.0.0-rc2
s2container-version: 2.4.38
s2dao-version: 1.0.50
use-s2dao: false
use-s2jdbc: true
use-oval: true
groupId: org.garbagetown
artifactId: test
version: 0.1.0
package: org.garbagetown.test
 Y: :

内容を確認して入力に問題が無いなら「Y」を入力します。

 Y: : y
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9 minutes 59 seconds
[INFO] Finished at: Tue Jul 28 11:20:17 JST 2009
[INFO] Final Memory: 8M/15M
[INFO] ------------------------------------------------------------------------

"BUILD SUCCESSFUL" と表示されて、artifactId で指定した名前のディレクトリ配下にプロジェクトの雛形が作成されます。

D:\work>dir test
2009/07/28  11:20    <DIR>          .
2009/07/28  11:20    <DIR>          ..
2009/07/28  11:20             7,629 pom.xml
2009/07/28  11:20    <DIR>          src

eclipse:add-maven-repo

eclispe から maven リポジトリを参照できるよう、eclipse環境変数 M2_REPO を設定します。-Declipse.workspace に eclipse が使用するワークスペースディレクトリを指定して eclipse:add-maven-repo を実行します。

D:\work>mvn eclipse:add-maven-repo -Declipse.workspace=d:\AmaterasIDE\2.0.6\workspace
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'eclipse'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - org.garbagetown:test:war:0.1.0
[INFO]    task-segment: [eclipse:add-maven-repo] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [eclipse:add-maven-repo]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 seconds
[INFO] Finished at: Tue Jul 28 11:59:44 JST 2009
[INFO] Final Memory: 6M/13M
[INFO] ------------------------------------------------------------------------

この作業は eclipse のインストール後、一度だけ実行すれば良いです。

eclipse:m2eclipse

このままでは作成したプロジェクトを eclipse に取り込めないので、プロジェクトのルートディレクトリに移動して eclipse:m2eclipse を実行します。

D:\work>cd test
D:\work\test>mvn eclipse:m2eclipse

eclipse プロジェクトに必要な各種設定ファイルが正常に生成されたら "BUILD SUCCESSFUL" と表示されます。

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 48 seconds
[INFO] Finished at: Tue Jul 28 11:29:28 JST 2009
[INFO] Final Memory: 10M/19M
[INFO] ------------------------------------------------------------------------
D:\work\test>dir
2009/07/28  11:29    <DIR>          .
2009/07/28  11:29    <DIR>          ..
2009/07/28  11:29               617 .classpath
2009/07/28  11:29               876 .project
2009/07/28  11:29    <DIR>          .settings
2009/07/28  11:20             7,629 pom.xml
2009/07/28  11:20    <DIR>          src
2009/07/28  11:29    <DIR>          target

sysdeo-tomcat:m2eclipse

このままでは tomcat プラグイン上で実行できないので、sysdeo-tomcat:m2eclipse を実行します。

D:\work\test>mvn sysdeo-tomcat:m2eclipse

tomcat プラグインに必要な設定ファイルが正常に生成されたら "BUILD SUCCESSFUL" と表示されます。

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 minutes 29 seconds
[INFO] Finished at: Tue Jul 28 11:41:54 JST 2009
[INFO] Final Memory: 7M/13M
[INFO] ------------------------------------------------------------------------
D:\work\test>dir
2009/07/28  11:41    <DIR>          .
2009/07/28  11:41    <DIR>          ..
2009/07/28  11:41               617 .classpath
2009/07/28  11:41               937 .project
2009/07/28  11:36    <DIR>          .settings
2009/07/28  11:41             4,151 .tomcatplugin
2009/07/28  11:20             7,629 pom.xml
2009/07/28  11:20    <DIR>          src
2009/07/28  11:29    <DIR>          target

Hello, Cubby!

下記の手順で eclipse にプロジェクトを取り込んで tomcat に認識させます。

  1. AmaterasIDE を起動
  2. パッケージエクスプローラ上の何もないところで右クリックして、コンテキストメニューから「インポート」を選択
  3. 「一般」->「既存プロジェクトをワークスペースへ」を選択して「次へ」をクリック
  4. 「ルートディレクトリーの選択」にプロジェクトのルートディレクトリ(上記例の場合は d:\work\test)を指定して「完了」をクリック
  5. パッケージエクスプローラ上でプロジェクトを右クリックして、コンテキストメニューから「Tomcat プロジェクト」->「コンテキスト定義を更新」を選択

「操作が成功しました」と表示されたら設定成功です。あとはメニューバーかツールバーから「Tomcat起動」を実行して、

情報: Coyote HTTP/1.1を http-8080 で起動します
2009/07/30 0:23:21 org.apache.jk.common.ChannelSocket init
情報: JK: ajp13 listening on /0.0.0.0:8009
2009/07/30 0:23:21 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=0/181  config=null
2009/07/30 0:23:21 org.apache.catalina.startup.Catalina start
情報: Server startup in 7184 ms

みたいに表示されたら、ブラウザから http://localhost:8080/test にアクセスします。
こんにちは、cubby

*1:http://seasarproject.g.hatena.ne.jp/halflite/20090402/blankwar

*2:windows xp ユーザの場合は c:\documents and settings\username\

*3:ぼくは「カスタム」で「Adobe AIR開発」以外をチェックしてインストールしています。