###建立目錄 mkdir sbtdemo cd sbtdemo scipio@localhost [04:31:59] [~/sbtdemo]html
###sbt設置項目信息 -> % sbt [info] Set current project to sbtdemo (in build file:/Users/scipio/sbtdemo/)java
set name := "sbt demo" [info] Defining *:name [info] The new value will be used by *:description, *:normalizedName and 6 others. [info] Run
last
for details. [info] Reapplying settings... [info] Set current project to sbt demo (in build file:/Users/scipio/sbtdemo/) session save [info] Reapplying settings... [info] Set current project to sbt demo (in build file:/Users/scipio/sbtdemo/) exitgit
會自動建立項目project目錄以及build.sbt 注意build.sbt裏頭要用空行分隔github
###添加eclipse支持 在project目錄下建立plugins.sbt文件(若是不存在的話), 而後添加 addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.4.0") sbt eclipse Import.... Navigate to General | Existing Projects into Workspaceweb
###添加idea支持 addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % 「1.5.2") 而後 sbt gen-ideaapi
嚐鮮版sbt-idea resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/ repositories/snapshots/"session
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0-SNAPSHOT」)app
###添加web-plugin,以運行在servlet容器上 addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "0.4.2")eclipse
同時在build.sbt裏頭添加 seq(webSettings :_*)
libraryDependencies += "org.mortbay.jetty" % "jetty" % "6.1.22" % "container"
libraryDependencies += "javax.servlet" % "servlet-api" % "2.5" % 「provided"webapp
完整以下: name := "SampleProject"
organization := "com.samples" version := "1.0" scalaVersion := "2.10.3" seq(webSettings :_*) libraryDependencies += "org.mortbay.jetty" % "jetty" % "6.1.22" % "container" libraryDependencies += "javax.servlet" % "servlet-api" % "2.5" % "provided"
###新建servlet
import javax.servlet.http.HttpServlet import scala.xml.NodeSeq import javax.servlet.http._ class SimpleServlet extends HttpServlet{ override def doGet(req: HttpServletRequest, resp: HttpServletResponse) { resp.setContentType("text/html") resp.setCharacterEncoding("UTF-8") val responseBody: NodeSeq = <html><body><h1>hello world from scala!</h1></body></html> resp.getWriter.write(responseBody.toString) } }
###在src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>simpleservlet</servlet-name> <servlet-class>SimpleServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>simpleservlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
###而後執行
sbt container:start
###打包 sbt package,打包成war
###包括依賴打成一個jar包
###添加格式化插件 addSbtPlugin("com.typesafe.sbt" % "sbt-scalariform" % "1.2.0") 每當你運行compile或者test:compile的時候,都會自動格式化
###添加http client封裝 在build.sbt裏頭添加
libraryDependencies += "net.databinder.dispatch" %% "dispatch-core" % 「0.11.0" scala mock libraryDependencies +="org.scalamock" %% "scalamock-scalatest-support" % "3.0.1" % 「test" specs2 libraryDependencies += "org.scalamock" %% "scalamock-specs2-support" % "3.0.1" % "test" jetty7 libraryDependencies ++= Seq( "org.eclipse.jetty" % "jetty-servlet" % "7.3.0.v20110203" % "container", "org.eclipse.jetty" % "jetty-webapp" % "7.3.0.v20110203" % "test, container", "org.eclipse.jetty" % "jetty-server" % "7.3.0.v20110203" % "container" ) seq(com.github.siasia.WebPlugin.webSettings :_*)