Saturday, December 1, 2012

SpringToolSuiteでSAStrutsとSpringMVCのHelloWorldを作るまで

Spring Tool Suite(以下STS)はeclipseをベースにしたIDEです。ライセンス料等はかかりません。

eclipseをベースとしているので見た目も操作感もeclipseそのものですが、ノーマルのeclipseと違ってサーバーサイドJava開発に必要なプラグインやmavenコマンドなどが初めから標準搭載なので、開発環境を手っ取り早く作るにはもってこいです。もちろんEclipseマーケットプレイスなども普通に使えるのでお好みのプラグインを追加することも可能です。

2012年10月に公開されたSTS3.1.0はeclipse3.8ベースのものとeclipse4.2ベースのものの両方が公開されています。両者ともmavenコマンド本体とm2eプラグイン、m2e-wtpプラグイン等が同梱されています。 公式ブログによると、eclipse3.xと4.xとでUIプラットフォームの違いからくるいくつかの問題があったようです。

eclipse3.8ベースのほうのSTSでSpringMVCとSAStrutsのプロジェクトを試作してみたところ、安定して開発ができそうな感じが得られました。今回はその手順を細かめに紹介します。

準備するもの

  • JDK6以上がインストール済みのPCが必要です。JREではなくJDKです。 mavenコマンドがコンパイル作業をすることがあるのでJDKが必須。
  • Tomcatは同梱されていませんのでこれもあらかじめインストールしておいてください。 Apache Tomcat - Apache Tomcat 7 Downloadsからzipをダウンロードして解凍するだけです。ここでは C:\apache-tomcat-7.0.33 に解凍済みだとして解説します。7ではなくてTomcat6でも大丈夫です。

STSのインストールと起動

  1. Tool Suites Download | SpringSource.orgからspring-tool-suite-3.1.0.RELEASE-e3.8-win32.zipをダウンロードします(64bitOSの人はwin64のほうを)
  2. お好みの位置でzipを解凍します。
  3. STSを起動します。解凍したフォルダのspringsource\sts-3.1.0.RELEASE\STS.exeを実行するだけです。緑色のスプラッシュが見慣れないかもしれませんが、起動したアプリをよく見るとそれはeclipseそのものであることがわかると思います。

mavenのWebプロキシ設定

これから作るHelloWorldアプリはmavenプロジェクトとして構成されます。 mavenコマンドはインターネット上のセントラルリポジトリサーバーから必要なjarを自動的にダウンロードしてきますが、このとき、Webプロキシを通過させる必要があるLAN環境の場合には、mavenの設定追加が必要です。

${user.home}/.m2/settings.xml というファイルを作成し、 http://maven.apache.org/settings.html#Proxiesで解説されている形で設定を書いておきます。 ちなみに ${user.home}/.m2/settings.xml というのはWindows7で言えば C:\Users\[OSユーザ名]\.m2\settings.xml にあたります。

もちろん、直接インターネットに出られるマシンの場合にはこの設定は不要です。

パースペクティブの変更

これは必須ではありませんが、この後の説明の画面キャプチャがJavaパースペクティブになっているので、それにあわせておいてください。

Tomcatの登録

STSの(というよりeclipseの)WTPプラグインを使ってeclipse内でTomcatと連携できるようにしておきます。

  1. Window→Preference→Server→RuntimeEnvironmentのダイアログを開きます

  2. Addボタンでサーバ追加用のダイアログが出ますので、ApacheTomcat7を選択してNextをクリックします

  3. あらかじめ展開しておいたTomcatのフォルダを指定して、Finishボタンを押せば完了です。

SpringMVCによるHelloWorld Webアプリの作り方

これで開発環境の準備が整いました。いよいよWebアプリを作ってみましょう。SpringMVCフレームワークを使う場合はプロジェクトの新規作成ウィザードで、SpringMVCテンプレートを選択するだけです。

  1. File→New→SpringTemplateProjectをクリック

  2. SpringMVCプロジェクトをクリック

  3. プロジェクト名とJavaパッケージ名を決めます。ここではmyspringmvc, パッケージはcom.example.myspringmvc としました。

  4. これでHelloWorldプロジェクトの完成です。ここでもしも赤いバツ印が出ていてもあわてる必要はありません。eclipse上で再ビルドすれば直ります。Project→Cleanしてください。(メニュー上のBuild Automaticallyのチェックはオンにしておいてください)

  5. いよいよTomcat上で起動してみましょう。プロジェクトを右クリックしてRun on Serverをクリックします。

  6. まだTomcatサーバがeclipseに無いので作ります。manually define a new serverのラジオボタンをオンにして、Tomcat7を選択し、finishをクリックします。

  7. tomcatが起動し、Hello World画面が表示されます!

SAStrutsによるHelloWorld Webアプリの作り方

私はSpringMVCも好きですが、SeasarプロジェクトのSAStruts(エスエーストラッツ/SuperAgileStruts)も、驚くほど使い勝手が良いので気に入っています。

STS(Spring Tool Suite)は文字通りSpringフレームワークをベースとしたアプリケーションを作るための開発環境ですが、元はeclipseなので、Srping以外であっても何でも開発できます。

STSにはmaven連携プラグインはもちろんmavenコマンド本体も初めから同梱されているのがポイントです。sastruts公式サイトでの説明にあるとおり、mavenコマンドをコマンドラインから実行してプロジェクトを作ってみましょう

  1. Windowsコマンドプロンプトを開きます。まずJAVA_HOME環境変数を設定しておきましょう。
    set JAVA_HOME=C:\jdk1.6.0_33
    
  2. 次に、mavenコマンドでアーキタイプからプロジェクトを新規生成します。 (下の例ではSTSがC:\springsourceの配下に展開されていると仮定しています)
    C:\springsource\apache-maven-3.0.4\bin\mvn.bat archetype:generate ^
     -DarchetypeRepository=https://www.seasar.org/maven/maven2/ ^
     -DarchetypeGroupId=org.seasar.sastruts ^
     -DarchetypeArtifactId=sa-struts-archetype ^
     -DarchetypeVersion=1.0.4-sp9.1 ^
     -DgroupId=com.example ^
     -DartifactId=mysastruts ^
     -Dversion=1.0-SNAPSHOT
    
  3. コマンドプロンプト上にBUILD SUCCESSFUL と表示されれば成功です。 上で指定したartifactIdと同じ「mysastruts」というフォルダにプロジェクトが生成されています。
  4. しかし、実は、sastrutsのアーキタイプには、.settingsフォルダや.tomcatpluginファイルのような、古いeclipseで使用する制御ファイルも含まれています。STSを使う場合にはこれらは必要ありません。 STSにインポートする前に以下のフォルダ/ファイルを消しておいてください。
    • .settingsフォルダ
    • .tomcatPluginファイル
    • .amaterasファイル
  5. こうして出来たプロジェクトをSTS上にインポートします。

  6. Existing Maven Projectを選択し、先ほど作ったmysastrutsフォルダを選択すると、自動的にpom.xmlを読み込んでMavenプロジェクトを認識してくれます。

  7. これでSTSのパッケージエクスプローラ上にmysastrutsプロジェクトが見えるようになっているはずです。 しかし、まだエラー(赤バツ印)が出ているはずです。 実はsastrutsのアーキタイプは非常に古いeclipseに対応するための設定がpom.xml上に書かれていますが、それらはSTSのような最近の開発環境では不要です。そこで、pom.xmlを開いて、<build>タグ内の下記の部分を全てコメントアウトまたは削除してください。
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  8. pom.xmlを変更した場合には、STSのmavenプラグインでUpdateProjectしておきます。

  9. これで準備完了です。上のSpringMVCのときと同じように、mysastrutsを右クリック→Run as→Run on Server でTomcatを選択して起動してください。
  10. SAStrutsのHello World画面が表示されました!

いかがでしたか?Java開発の世界では事前準備が結構大変なのですが、 STSにはサーバーサイドJava開発に必要なツールが全て同梱されていますので、すぐにプログラミングにとりかかれます。 あとからSTSに追加すべきプラグインをしいて挙げるとすれば、我々マルチバイト言語な人間にとっては必須なのはプロパティエディタプラグインくらいなものではないでしょうか。

ところで、もっと高機能なテンプレートを公開している方もいます。詳しくは STSでSpringMVC+SpringDataJPA+HibernateなPre-Configuredテンプレートプロジェクトをクイックスタート! #jsug - BLOG.IK.AMをご覧ください。それではHappy hacking !

No comments:

Post a Comment