はじめの一歩
みんな大好き 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 は subversion や maven と連携できれば何でもいいのですが、ここでは eclipse 3.4 (Ganymede) に subclipse や m2eclipse などのプラグインを同梱した AmaterasIDE をお勧めします。
下記サイトから AmaterasIDE 2.0.6.exe をダウンロードして実行します。
こちらも基本的にはイエスイエスのイエスマンで「次へ」を連打すれば良いのですが、「コンポーネントの選択」では「完全」を選択してください。*3
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 に認識させます。
- AmaterasIDE を起動
- パッケージエクスプローラ上の何もないところで右クリックして、コンテキストメニューから「インポート」を選択
- 「一般」->「既存プロジェクトをワークスペースへ」を選択して「次へ」をクリック
- 「ルートディレクトリーの選択」にプロジェクトのルートディレクトリ(上記例の場合は d:\work\test)を指定して「完了」をクリック
- パッケージエクスプローラ上でプロジェクトを右クリックして、コンテキストメニューから「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!
参考
- Cubby Project - 2分間チュートリアル
- Trac Lightning Wiki - Trac Lightning - SourceForge.JP
- AmaterasIDEInstaller - Project Amateras
- http://blog.4sure.jp/yokoshima/2009/06/03/devloaderzip%E3%82%92tomcat6%E3%81%A7%E4%BD%BF%E3%81%86/
- 4. Eclipseとの連携 | TECHSCORE(テックスコア)
- mvn eclipse:eclipseとmvn eclipse:m2eclipseの違い - tanamonの日記
- mvn sysdeo-tomcat:generateとmvn sysdeo-tomcat:m2eclipseの違い - tanamonの日記
*1:http://seasarproject.g.hatena.ne.jp/halflite/20090402/blankwar
*2:windows xp ユーザの場合は c:\documents and settings\username\