Scalatra 教程(第一部分)
来源:互联网 发布:js时间转化成数字串 编辑:程序博客网 时间:2024/05/18 01:56
在这个系列教程里,我们将更近距离的看看Scalatra。Scalatra是基于微web框架的轻量级scala,它可以用来创建高性能站点和API. 在第一个教程里,我们将开始着手安装scalatra,然后把我们的测试项目倒入到Eclipse里。
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 | shcs n8han/giter8
最后一个命令是安装g8到你的/bin目录下。我已经对这个版本的g8进行了下面测试:
~/bin/g8 giter8 0.5.0Usage: 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
创建并初始化项目
在你的主目录里运行下面的命令创建你的项目:
jos@Joss-MacBook-Pro.local:~/dev/scalatra/firststeps$ g8 scalatra/scalatra-sbtorganization [com.example]: org.smartjavapackage [com.example.app]: org.smartjava.scalatra name [scalatra-sbt-prototype]: hello-scalatraservlet_name [MyScalatraServlet]: HelloScalatraServletscala_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启动你的项目。这会下载很多东西,完成之后会启动应用:
jos@Joss-MacBook-Pro.local:~/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 SelectChannelConnector@0.0.0.0: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将重新装载应用,而且你将直接看到已经更改了的文件。
- Scalatra 教程(第一部分)
- FreeType 2 教程(第一部分)
- FreeType 2 教程(第一部分)
- Google Analytics分析教程(第一部分)
- (译)cocos2d菜单教程:第一部分
- (译)cocos2d精灵教程:第一部分
- 《C++捷径教程》读书笔记--Chapter 7--函数,第一部分:基础知识(第一部分)
- 《C++捷径教程》读书笔记--Chapter 6--指针(第一部分)
- 《C++捷径教程》读书笔记--Chapter 11--类(第一部分)
- EJB3.0 学习教程(连载) 第一部分
- Linux Socket教程第一部分(IBM教程)
- 《C++捷径教程》读书笔记--Chapter 7--函数,第一部分:基础知识(第二部分)
- 苹果消息推送服务教程:第一部分(共2部分)
- 苹果消息推送服务教程:第一部分(共2部分)
- 苹果消息推送服务教程:第一部分(共2部分)
- 苹果消息推送服务教程:第一部分(共2部分)
- 转贴:Rich Client 教程 第一部分
- JavaScript教程 - 第一部分 接触 JavaScript
- 关于C#中的lock object 、lock this 、 lock static object
- 进度对话框(ProgressDialog)
- 细说GCC、Make、GDB
- 数据链路
- JPA概要说明
- Scalatra 教程(第一部分)
- redis bitmap实现签到
- identifierForVendor
- Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突
- 黑马程序员------二维数组三种格式的内存图解
- 创建自己的类加载器,从不同的目录中加载class文件
- 如何设置SVN服务器端的用户名和密码2
- SOJ 2142 Cow Exhibition
- CocoaPods的一些记录