maco's life

主にエンジニアリングと読書について書いていきます。

Scalaとちょっと戯れる

rubyやってみた時もそうだったけど、まずは軽量フレームワークに触ってみると こんな感じなのかーってなりやすいからとりあえずScalatraいれてみた! (※rubyをさわったときはSinatraいれた)

インストール手順は公式サイトのまんまなのでリンクを貼らせていただきました。 Installation | Scalatra

なんかわからなかったのがgiter8(n8han/giter8 · GitHub)なるもの! とりあえずドキュメント呼んだら、 githubのレポジトリとかテンプレートからファイルやディレクトリを生成するCLIだぜ! みたいなことが書いてあった。

ほう。

後もう一個わからなかったのがsbtなるもの。 名前のノリ的にscala build toolとかっぽい。 これ実行するとコンパイルしてくれてるみたいだから今はコンパイルする 何かと覚えておこう。

実行すると

MacoTasu% ./sbt                                                                                                                                                                                                                                                   [~/sampletra]
Detected sbt version 0.13.5
Starting sbt: invoke with -help for other options
Using /Users/MacoTasu/.sbt/0.13.5 as sbt dir, -sbt-dir to override.
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384m; support was removed in 8.0

[info] Loading project definition from /Users/MacoTasu/sampletra/project
[info] Set current project to SampleTra (in build file:/Users/MacoTasu/sampletra/)
>
> container:start
[info] Generating /Users/MacoTasu/sampletra/target/scala-2.11/resource_managed/main/rebel.xml.
[info] Compiling Templates in Template Directory: /Users/MacoTasu/sampletra/src/main/webapp/WEB-INF/templates
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[info] Compiling 5 Scala sources to /Users/MacoTasu/sampletra/target/scala-2.11/classes...
[info] 'compiler-interface' not yet compiled for Scala 2.11.1. Compiling...
[info]   Compilation completed in 17.064 s
2014-10-31 22:18:30.477:INFO::pool-5-thread-1: Logging initialized @32073ms
2014-10-31 22:18:30.870:INFO:oejs.Server:pool-5-thread-1: jetty-9.1.5.v20140505
2014-10-31 22:18:31.293:INFO:oejw.StandardDescriptorProcessor:pool-5-thread-1: NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
22:18:31.863 [pool-5-thread-1] INFO  o.scalatra.servlet.ScalatraListener - The cycle class name from the config: ScalatraBootstrap
22:18:32.035 [pool-5-thread-1] INFO  o.scalatra.servlet.ScalatraListener - Initializing life cycle class: ScalatraBootstrap
22:18:32.597 [pool-5-thread-1] INFO  o.f.s.servlet.ServletTemplateEngine - Scalate template engine using working directory: /var/folders/ds/p_pwg2dd59x_y16j456151f00000gn/T/scalate-8669263412642171688-workdir
2014-10-31 22:18:32.602:INFO:oejsh.ContextHandler:pool-5-thread-1: Started o.e.j.w.WebAppContext@5c10f85{/,[file:/Users/MacoTasu/sampletra/src/main/webapp/],AVAILABLE}
2014-10-31 22:18:32.652:INFO:oejs.ServerConnector:pool-5-thread-1: Started ServerConnector@1076e532{HTTP/1.1}{0.0.0.0:8080}
2014-10-31 22:18:32.653:INFO:oejs.Server:pool-5-thread-1: Started @34257ms
[success] Total time: 25 s, completed 2014/10/31 22:18:32

みたいになって、なんかコンパイルしてサーバー起動してるっぽい。

使え方覚えれば手軽に使えそう