Intellij IDEA/Scala/Playframework2.0 での環境構築に関するメモ #play_ja
先日参加したPlay2.0もくもく勉強会で『Play2.0/Scalaをやるなら、IntelliJはオススメらしい…』という情報を頂き、当日はそこまで引っ括めて対処出来なかったので別途エントリに起こす形で環境構築内容をメモ。
index.
IntelliJ IDEAインストール
2013/01/15 時点の最新、12.0.2をダウンロード&インストール。
アプリケーション起動。以前のバージョン(IDEA 11)が入っていたのでその辺の設定引き継ぎを行いますか?と聞かれたけどもここはひとまず設定引き継ぎを回避する形を取りました。
起動直後のメニュー画面。
IntelliJ IDEA: Scala プラグインの導入
- メニューから[IntelliJ IDEA]→[Preferences]を選択。
- 一覧の中から[Scala]を選択し、右クリックで[Download and Install]を選択。
- 更新処理が始まり、しばらくするとプラグイン導入が完了。
Scalaプロジェクトの作成
- プロジェクトに任意の名称を設定。また[Set Scala Home]欄に、Scalaインストール設定内容(SCALA_HOMEに相当?)する場所を指定。今回試した環境は2.9.2で、該当しそうなパスを設定してみたが下記画像の様に警告メッセージが出てしまっていた。これはバージョンによるもの[あるバージョン以降or手法であれば、指摘されているパスも存在]なのかな?ひとまずこれで先に進めて行く事に。
- また、JDKの設定も必要。事前にJavaをインストールしておき、[Project SDK]で該当する内容を設定しておく。
- [Finish]押下。
- srcフォルダを右クリック、[New Scala Class]を指定。[Object]でクラスを作成。
- 試しに簡単な処理を書いてみる。
import util.Properties /** * Created with IntelliJ IDEA. * User: shinyaa31 * Date: 13/01/19 * Time: 15:49 * To change this template use File | Settings | File Templates. */ object HelloScala { def main(args: Array[String]) :Unit = { println("Hello, Scala!") println(Properties.versionString) } }
- クラスファイルを右クリック→Run (クラス名.Main)で実行。
Hello, Scala!
version 2.9.2
外観等の設定変更
- フリーカーソルの無効化:[Editor]→[Allow placement of caret after end of line]のチェックを外す。
- スキンの変更:[Appearance]→[Theme]の箇所を"Default"から"Darcula"に変更する事が出来る。変更すると黒背景の見た目に。(※要再起動)
Play2.0アプリケーション構築
- 新規作成(play new アプリケーション名)
$ play new playfw20scala _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.4, http://www.playframework.org The new application will be created in /Users/XXXX/IdeaProjects/playfw20scala What is the application name? > playfw20scala Which template do you want to use for this new application? 1 - Create a simple Scala application 2 - Create a simple Java application 3 - Create an empty project > 1 OK, application playfw20scala is created. Have fun! $
- 実行(プロジェクト配下に移動、"play"でコンソール起動)
$ cd playfw20scala/ $ play [info] Loading project definition from /Users/shinyaa31/IdeaProjects/playfw20scala/project [info] Set current project to playfw20scala (in build file:/Users/shinyaa31/IdeaProjects/playfw20scala/) _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.0.4, http://www.playframework.org > Type "help play" or "license" for more information. > Type "exit" or use Ctrl+D to leave this console. [playfw20scala] $
- アプリケーション起動(コンソール上で"run")
[playfw20scala] $ run [info] Updating {file:/Users/shinyaa31/IdeaProjects/playfw20scala/}playfw20scala... [info] Done updating. --- (Running the application from SBT, auto-reloading is enabled) --- [info] play - Listening for HTTP on port 9000... (Server started, use Ctrl+D to stop and go back to the console...)
- IDEAプロジェクト対応(コンソール上で"idea")
[playfw20scala] $ idea [info] Trying to create an Idea module playfw20scala [info] Excluding folder target [info] Created /Users/shinyaa31/IdeaProjects/playfw20scala/.idea/IdeaProject.iml [info] Created /Users/shinyaa31/IdeaProjects/playfw20scala/.idea [info] Excluding folder /Users/shinyaa31/IdeaProjects/playfw20scala/target/scala-2.9.1/cache [info] Excluding folder /Users/shinyaa31/IdeaProjects/playfw20scala/target/scala-2.9.1/classes [info] Excluding folder /Users/shinyaa31/IdeaProjects/playfw20scala/target/scala-2.9.1/classes_managed [info] Excluding folder /Users/shinyaa31/IdeaProjects/playfw20scala/target/streams [info] Created /Users/shinyaa31/IdeaProjects/playfw20scala/.idea_modules/playfw20scala.iml [info] Created /Users/shinyaa31/IdeaProjects/playfw20scala/.idea_modules/playfw20scala-build.iml [playfw20scala] $
Play2.0プロジェクトをIDEAに取り込み
Play2.0プラグインの導入
- さぁ!最後のステップ、IDEA上にPlay2.0プラグインをインストールです。
まずは関連するプラグインを入手。2013/01/19時点での最新0.2.6をダウンロード、解凍した。
- plugin設定画面で[install plugin from disk...]を押下。scala-play-2.jarを指定し取り込む。
- 更新ダイアログが出るので内容に従いIDEを再起動。
よっしゃ、これでPlay2.0もガンガン行ける!と思った…のですが、更新後の内容を見ると以下のようなメッセージが。どうやらPlay2.0のサポートはUltimate版でしか正式対応していない模様です。
こちらで確認する限り、個人〜商用で200ドル〜700ドルは掛かる模様。
ちょうど去年マヤ暦による地球終了セールで75%OFF!と賑わっていた時に買っておくべきだったかと悔やむものの、このタイミングではそこまで購入意欲は湧いてなかったからな〜。まぁ仕方無い。こういう機会は年に数回あるようなのでその時期を伺うとしますかね。
ScalaのみならずPlay2.0Scalaについても、EclipseよりもIntelliJの方が『痒い所に手が届く』的な感じで良さ気な気がしている今日この頃。
Scalaの学習についてはIntelliJ/Community Editionでも十分行えるので、まずはScalaを学ぶ事から着手→その後にライセンス購入セールの機会orPlay2.0Scalaを利用する強い機会がやって来た頃にライセンス購入を検討しようかと思います。
その他参考:
今日のつぶやき 2013/01/19
- [雑記][Twitter]今日のつぶやき 2013/01/18: @sue445 ツンツンしてるドラえもん?w posted at 23:40:29 こんな勉強会に参加してました:(023) 2011/06/11(土) 『A... http://t.co/cMx4OUuM posted at 23:48:41
- [Book]BUY 2013/01/18: アジャイル開発とスクラム 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント 作者: 平鍋健児,野中郁次郎 出版社/メーカー: 翔泳社 発売日: 2013/01/18 メデ... http://t.co/wX9U6PIx posted at 23:48:41
- 「ライムスター宇多丸のウィークエンドシャッフル 2013/01/19放送分のつぶやき #utamaru」をトゥギャりました。 http://t.co/KVv9JuFg posted at 23:07:26
- [雑記][Twitter]今日のつぶやき 2013/01/17: @unok Scala導入→IDEA導入→ScalaPlugin導入→さぁ次はPlay2対応だ!→おっと(CE版では)ここまでかとなって今に至るのでようやっと... http://t.co/FuNzg0Za posted at 22:33:27
- [雑記][Twitter]今日のつぶやき 2013/01/16: こんな勉強会に参加してました:(098) 2012/04/12(木) アジャイルサムライ読書会 横浜道場 「みんなをバスに乗せる」に参加してきた #agile... http://t.co/uz4p13b9 posted at 22:33:27
- こんな勉強会に参加してました:(104) 2012/05/11(金) スクラム道フルブーストに参加してきた #scrumdo #nawoto_girls http://t.co/CBAVPWUZ posted at 22:18:29
- 今日のタマフルのシネマハスラーは、先日観た『LOOPER/ルーパー』なので宇多さんがどういう批評をしてくるのか楽しみだ。 #utamaru posted at 19:44:59
- 明日開催です! 参加者も数名増えて賑やかになりつつあります。Groovy&G*でやりたい事、聞きたい事などあれば是非。 / Yokohama.groovy #11 #yokohamagroovy - connpass http://t.co/QVtWGF0j posted at 19:42:55
- RT @senden_daddy: みんな仲良し! http://t.co/6akKzfMm posted at 19:39:56
- [Playframework][Scala][IntelliJ IDEA]Intellij IDEA/Scala/Playframework2.0 での環境構築に関するメモ #play_ja: Play 2.0 Javaはじ... http://t.co/4DSglmJC posted at 19:35:19
- RT @orange_clover: [groovy]最後の『G*ワークショップ 2013新春SP #jggug』 に参加してきました。 http://t.co/OIkVU3sm posted at 19:33:22
- @ebc_2in2crc |ω-) .oO(いつでもえびさんの来訪を歓迎しておりますよ...) posted at 19:29:32
- 明日やる事の洗い出しと準備を始めるとするか posted at 19:22:38
- @mike_neck 今すぐ17000円近くはちょいと…まぁ無くても使えるのでしばらくはCEで我慢し、時が来たら考えます。 posted at 19:22:09
- こんな勉強会に参加してました:(051) 2011/10/08(土) 第13回Yokohama.rbに参加してきた #yokohamarb http://t.co/Xv3EDBPs posted at 19:18:26
- IntelliJでPlay2.0/ScalaやるにはUltimate版でないとアカン、という所までの経緯をまとめ。/ Intellij IDEA/Scala/Playframework2.0 での環境構築に関するメモ #play_ja http://t.co/MnNzN2JM posted at 19:18:17
- ごはんたべたい同士を発見します。 http://t.co/latAsQio posted at 18:08:08
- RT @nobusue: “レガシーブラウザを切り捨てたjQuery 2.0、どれくらい小さくなった?” http://t.co/H0KbeTGG posted at 16:28:12
- こんな勉強会に参加してました:(083) 2012/02/16(木) Developers Summit 2012 Day1に参加してきた #devsumi http://t.co/IE2F5D0E posted at 16:18:23
- @grimrose Yokohama.groovyについては明日ざっくり(年度末:2月3月の)スケジューリングしましょう。 @y_sumida posted at 14:48:35
- こんな勉強会に参加してました:(099) 2012/04/21(土) 継続的デリバリー読書会に参加してきた #CDStudy http://t.co/CAtF3b9e posted at 13:18:20
- #jggug の毎月定期開催の前後に #yokohamagroovy を配置していくと、『jggugで学んだ内容をyokohama.groovyで更に復習』『今度jggugがあるのでyokohama.groovyで準備・予習しよう』みたいな上手い使い方が出来るかもな〜。 posted at 13:13:15
- RT @heroween: Twitter Bootstrapのテーマをオンラインで作成出来るツール・Bootstrap magic - かちびと.net: http://t.co/QAT8JsXY @kachibitoさんから posted at 12:45:14
- こんな勉強会に参加してました:(091) 2012/03/10(土) 『Agile Meets UX 〜アジャイル開発とユーザエクスペリエンスの遭遇〜』に参加してきた http://t.co/jGRZLaHX posted at 10:18:15
- (釗3[▓▓▓] #mkr おはようございます。 posted at 08:15:45
- こんな勉強会に参加してました:(107) 2012/05/21(月) 第21回 G*ワークショップ に参加してきた #jggug http://t.co/KEkPanJJ posted at 07:18:12
- こんな勉強会に参加してました:(087) 2012/02/28(火) 「Gitによるバージョン管理」の執筆者によるGit勉強会か講演会 に参加してきた #gitbookjp http://t.co/Kyf81pXV posted at 04:18:08
- こんな勉強会に参加してました:(094) 2012/03/23(金) アジャイルリーダーシップトレーニングに参加してきた #agilesamurai http://t.co/PWDrZmgU posted at 01:18:03
- @natsu_nanana 自分ではそこまでの感覚は無いけども、急激な寒さも相まって体調に影響出たのもあるのかなぁ。ゆっくり休もうと思います。 posted at 01:14:38
- @mike_neck 大人しく早目に休息取る事にします。ありがとうございます。 posted at 01:13:06
- @orange_clover 何とか持ち直してきました。ただいまです〜。 posted at 01:12:18
- 帰宅 posted at 01:10:33
- 目眩的な立ちくらみ的な感じで若干具合が悪い...帰ったら早目に寝るか。 posted at 00:42:24
- RT @t_wada: 【空欄を埋めよ】1.辻 2.平野 3.秋山 4.清原 5.デストラーデ 6.石毛 7.( ) 8.伊東 9.田辺 #おっさんセンター試験 posted at 00:30:28
- @kyon_mm 何か最近『こわい』という言葉もあまり使わない方が良いんじゃないかなぁと言う気もしてます。普通に『すごい』で良いじゃん、と。恐らく『こわい』に『すごい』の意味も含んでるんだろうけど、何か…ねぇ。考え過ぎかしら。(´・ω・`) posted at 00:17:33
- @kyon_mmこわいかこわくないかは、当人では無く他人が決める事だと思われます。その人との距離感でかけ離れていれば十分こわさを感じるし、近しい位置に入れば別にこわくないよ?となるし。 posted at 00:13:51