Scalatra

SBT和giter8

在你开始着手之前,你需要安装两个工具(我假设你已经安装了JDK1.6+)。我将给你提供简缩的安装指令,详细版的安装指令可通过 下面的scalatra页面找到( http://www.scalatra.org/getting-started/first-steps.html)。这种方法应该可以在大多数环境下运行,不过,对我自己来说,它不能运行......它下载了老版本的 giter8和老版本的sbt。为了获得sbt,我使用macport下载了最新版本:

port install sbt

然后我也手工下载了giter8.

curl https://raw.github.com/n8han/conscript/master/setup.sh | sh
cs n8han/giter8

最后一个命令是安装g8到你的/bin目录下。我已经对这个版本的g8进行了下面测试:

~/bin/g8
 
giter8 0.5.0
Usage: g8 [TEMPLATE] [OPTION]...
Apply specified template.
 
OPTIONS
    -b, --branch
        Resolves a template within a given branch
    --paramname=paramvalue
        Set given parameter value and bypass interaction.
 
 
Apply template and interactively fulfill parameters.
    g8 n8han/giter8
 
Or
    g8 git://github.com/n8han/giter8.git
 
Apply template from a remote branch
    g8 n8han/giter8 -b some-branch
 
Apply template from a local repo
    g8 file://path/to/the/repo
 
Apply given name parameter and use defaults for all others.
    g8 n8han/giter8 --name=template-test

创建并初始化项目

在你的主目录里运行下面的命令创建你的项目:

[email protected]:~/dev/scalatra/firststeps$ g8 scalatra/scalatra-sbt
organization [com.example]: org.smartjava
package [com.example.app]: org.smartjava.scalatra
name [scalatra-sbt-prototype]: hello-scalatra
servlet_name [MyScalatraServlet]: HelloScalatraServlet
scala_version [2.9.1]:
version [0.1.0-SNAPSHOT]:

这步会在当前目录下创建hello-scalatra项目目录。

./build.sbt
./project
./project/build.properties
./project/plugins.sbt
./README.md
./src
./src/main
./src/main/resources
./src/main/resources/logback.xml
./src/main/scala
./src/main/scala/org
./src/main/scala/org/smartjava
./src/main/scala/org/smartjava/scalatra
./src/main/scala/org/smartjava/scalatra/HelloScalatraServlet.scala
./src/main/scala/Scalatra.scala
./src/main/webapp
./src/main/webapp/WEB-INF
./src/main/webapp/WEB-INF/layouts
./src/main/webapp/WEB-INF/layouts/default.scaml
./src/main/webapp/WEB-INF/views
./src/main/webapp/WEB-INF/views/hello-scalate.scaml
./src/main/webapp/WEB-INF/web.xml
./src/test
./src/test/scala
./src/test/scala/org
./src/test/scala/org/smartjava
./src/test/scala/org/smartjava/scalatra
./src/test/scala/org/smartjava/scalatra/HelloScalatraServletSpec.scala

为了测试所有的一切是能工作的,到你的项目目录,通过‘container:start’这个命令,使用sbt启动你的项目。这会下载很多东西,完成之后会启动应用:

[email protected]:~/dev/scalatra/firststeps/hello-scalatra$ sbt
[info] Loading project definition from /Users/jos/Dev/scalatra/firststeps/hello-scalatra/project
[info] Set current project to hello-scalatra (in build file:/Users/jos/Dev/scalatra/firststeps/hello-scalatra/)
> container:start
[info] jetty-8.1.5.v20120716
[info] NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
[info] started o.e.j.w.WebAppContext{/,[file:/Users/jos/Dev/scalatra/firststeps/hello-scalatra/src/main/webapp/]}
[info] started o.e.j.w.WebAppContext{/,[file:/Users/jos/Dev/scalatra/firststeps/hello-scalatra/src/main/webapp/]}
15:12:44.604 [pool-6-thread-4] INFO  o.scalatra.servlet.ScalatraListener - Initializing life cycle class: Scalatra
[info] started o.e.j.w.WebAppContext{/,[file:/Users/jos/Dev/scalatra/firststeps/hello-scalatra/src/main/webapp/]}
15:12:44.727 [pool-6-thread-4] INFO  o.f.s.servlet.ServletTemplateEngine - Scalate template engine using working directory: /var/folders/mc/vvzshptn22lg5zpp7fdccdzr0000gn/T/scalate-5609005579304140836-workdir
[info] Started [email protected]:8080
[success] Total time: 1 s, completed Sep 7, 2012 3:12:44 PM
>
[success] Total time: 1 s, completed Sep 7, 2012 3:10:05 PM

为了测试是否所有的正确,打开你的浏览器访问 localhost:8080,你会看到下面的界面说明一切正确:

导入到Eclipse里

我通常使用Eclipse开发,因此在这种情况下,让我们确保我们可以在Eclipse里编辑源代码。为了这个目的,我们可以使用eclipse的sbt插件。添加这个插件是非常容易的。进入‘项目’文件夹,然后把下面的内容(在它之前由一个空行)增加到plugins.sbt文件里。

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0"

当你下一步运行sbt的时候,你将看到正在下载的很多东西。从sbt里运行‘eclipse‘,这时创建了eclipse的配置文件(.classpath和.project) 。现在启动Eclipse集成开发环境,然后你可以导入你刚才创建的项目(确保你也安装了eclipse的scala-ide)。

现在我们启动容器,让sbt侦听我们资源的变化。

$ sbt
> container:start
> ~ ;copy-resources;aux-compile

在Eclipse里我们存储文件的任何时刻,sbt都将复制和重新编译资源。因此我们能直接在浏览器里看到已经更改的文件。打开文件HelloScalatraServlet,然后修改欢迎文本。如果你保存了这个文件,那么sbt将重新装载应用,而且你将直接看到已经更改了的文件。

时间: 2024-08-08 10:47:05

Scalatra的相关文章

Scala框架选择

我所知道的Scala持久层框架有: 1.Slick 2.Squeryl 3.Anorm(Play的持久层) 4.ScalaActiveRecord (基于Squeryl之上) 5.circumflex-orm web框架的话 1.Spray(build on akka,完全异步,非阻塞,非常有前景,适合REST后端程序) 2.Play(还不是很习惯) 3.Scalatra(对akka,squeryl等都有现成集成,适合需要view层的) 4.Lift 我的选择: 1.对于api层 采用Spray

极简主义(Minimalist)Web 框架大汇总

极简主义(Minimalist)Web 框架大汇总 罗列了一系列极简主义的框架(简单.轻量级),按编程语言分好类,按字母顺序排序. 列表 CSS 框架 C 写的 Web 框架 PHP 写的 数据库 框架 前端 JS 的框架 Go 写的 Web 框架 Haskell 写的 Web 框架 Java 写的 Web 框架 JavaScript 写的 Web 框架 Lua 写的 Web 框架 Node.js 写的 Web 框架 Perl 写的 Web 框架 PHP 写的 Web 框架 Python 写的

项目管理及自动构建工具Maven

项目管理及自动构建工具Maven 一.Maven安装.目录结构.cmd命令1.下载安装apache-maven-3.2.3-bin.zip下载:http://maven.apache.org/download.cgi 安装:解压,配置环境变量M2_HOME=D:\Idea\config\apache-maven-3.2.3Path+=D:\Idea\config\apache-maven-3.2.3\bin 通过执行 mvn -v 可以查看当前版本号 C:\Users\yuki>mvn -v A

服务器推送

WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket通信协议于2011年被IETF定为标准RFC 6455,WebSocketAPI被W3C定为标准. 在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道.两者之间就直接可以数据互相传送. 背景 现在,很多网站为了实现推送技术,所用的技术都是轮询.轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然

scala book

1.Scala in Action2.Scala in Depth3.Functional Programming in Scala4.Akka in Action5.Lift in Action6.Play for Scala7.Scalatra in Action8.SBT in Action9.Reactive Design Patterns 本文仅用于学习和交流目的,不代表图

scalajs_初体验

scalajs是将scala编译成js的编译器,目的在于使用scala的众多类库和强类型特征构建出稳定可扩展的js应用. build.sbt构建文件如下: enablePlugins(ScalaJSPlugin) name := """scalajs""" version := "1.0" scalaVersion := "2.12.1" libraryDependencies += "org.s

Swagger入门教程

[译]5.41 Swagger tutorial 单击此处查看原文 更多概念参见:Implementing Swagger with your API docs 关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现. Swagger 文件可以在许多不同的平台上从代码注释中自动生成. Sw