使用 sbt 0.11 JRebel 构建 Lift2.4 应用

Scala用户可以申请免费的 JRebel  licence ,这里不多说了

image

 

sbt.bat 加上 JRebel

1
2
3
4
5
@echo off
set SCRIPT_DIR=%~dp0
set JAVA_OPTS=-Dfile.encoding=UTF8 -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m
set JREBEL_OPTS=-javaagent:"%JREBELJAR%" -Drebel.lift_plugin=true
java  %JAVA_OPTS% %JREBEL_OPTS% -jar "%SCRIPT_DIR%sbt-launch-0.11.2.jar" %*

plugins.sbt

1
2
3
resolvers += Classpaths.typesafeResolver
 
libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.10"))
1
build.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import sbt._
import Keys._
import com.github.siasia._
import PluginKeys._
import WebPlugin._
import WebappPlugin._
 
object BuildSettings {
 
  lazy val buildSettings = Defaults.defaultSettings ++ webSettings ++ Seq(
     
    organization := "net.xzlong",
    version      := "0.1-SNAPSHOT",
    scalaVersion := "2.9.1",
 
    // using 0.2.4+ of the sbt web plugin
    scanDirectories in Compile := Nil,
    // compile options
    scalacOptions ++= Seq("-encoding", "UTF-8", "-deprecation", "-unchecked"),
    javacOptions  ++= Seq("-Xlint:unchecked", "-Xlint:deprecation"),
 
    // show full stack traces
    testOptions in Test += Tests.Argument("-oF"))
   
}
 
object Resolvers {
  val typesafeRepo =  "Typesafe Repo" at "http://repo.typesafe.com/typesafe/releases"
  val maven2Repo =  "Java.net Maven2 Repository" at "http://download.java.net/maven/2/"
}
 
object Dependencies {
  val liftWebkit = "net.liftweb" %% "lift-webkit" % "2.4" % "compile"
  val liftMapper = "net.liftweb" %% "lift-mapper" % "2.4" % "compile"
  val jetty = "org.eclipse.jetty" % "jetty-webapp" % "7.5.4.v20111024" % "container"
  val logback = "ch.qos.logback" % "logback-classic" % "1.0.0" % "compile"
  val scalatest = "org.scalatest" %% "scalatest" % "1.6.1" % "test"
  val junit =  "junit" % "junit" % "4.10" % "test"
  val h2database = "com.h2database" % "h2" % "1.3.164"
}
 
object qutaProjectBuild extends Build {
  import BuildSettings._
  import Resolvers._
  import Dependencies._
   
  lazy val qutaProject = Project(
    "quta",
    file("."),
    settings = buildSettings ++ Seq(
      resolvers ++= Seq(typesafeRepo, maven2Repo),
      libraryDependencies ++= Seq(liftWebkit, liftMapper, jetty, logback, scalatest, junit, h2database)
    ))
 
}
1
sbt 控制台启动web容器, 之后 ~compile,享受编码乐趣吧,改变代码无需重启web容器
1
  
1
BTW 有人说可能会说 lift 官方使用sbt 0.7 运行~jetty:run 也无需重启, 工程比较小时还好, 工程大时,jetty reload 还是很耗时间的
posted @   夜精灵  阅读(442)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
点击右上角即可分享
微信分享提示