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