Scala和Scalatra入门–第一部分

在本系列教程中,我们将更深入地研究scalatra。 Scalatra是基于轻量级Scala的微型Web框架,可用于创建高性能网站和API。 在第一个教程中,我们将开始安装scalatra,并将测试项目导入Eclipse。

SBT和giter8

开始之前,您需要安装一些工具(我假设您已经安装了JDK 1.6+)。 我将为您提供简要的安装说明,其详细版本可以在以下scalatra页面( http://www.scalatra.org/getting-started/first-steps.html )中找到。 这种方法应该适用于大多数环境,但是对于我自己的方法却不起作用……它下载了旧版本的giter8和旧版本的sbt。 对于sbt,我使用macports来获取最新版本:

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


创建初始项目

转到保存项目的根目录,然后运行以下命令:

jos@Joss-MacBook-Pro.local:~/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

要测试一切是否正常,请进入该目录,并使用sbt通过sbt通过“ container:start”启动应用程序。 这将下载很多东西,最后启动应用程序:

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中编辑源代码。 为此,我们可以使用sbt eclipse插件。 添加此插件非常简单。 转到“项目”文件夹,然后将以下内容(前面带有空行)添加到plugins.sbt文件中。

addSbtPlugin('com.typesafe.sbteclipse' % 'sbteclipse-plugin' % '2.1.0')

下次运行sbt时,您会看到很多东西正在下载。 从sbt运行'eclipse',并创建eclipse配置文件(.classpath和.project)。 现在启动Eclipse IDE,您可以导入刚刚创建的项目(确保还安装了scala-ide for Eclipse )。

现在我们可以启动容器,让sbt监听资源中的更改。

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

每当我们在Eclipse中保存文件时,sbt都会复制并重新编译资源。 因此,我们可以在浏览器中直接查看更改的文件。 打开文件HelloScalatraServlet并更改欢迎文本。 如果您保存此设置,则sbt将重新加载应用程序,您将直接看到更改的文件。

这是本教程的第一部分。 下周,我们将研究如何使用scalatra创建基于REST的服务。

祝您编程愉快,别忘了分享!

参考: 教程:scala和scalatra入门– Smart Java博客上JCG合作伙伴 Jos Dirksen的第一部分


翻译自: https://www.javacodegeeks.com/2012/09/getting-started-with-scala-and-scalatra.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值