zoukankan      html  css  js  c++  java
  • 使用 sbt 0.11 JRebel 构建 Lift2.4 应用

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

    image

    sbt.bat 加上 JRebel

    @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

    resolvers += Classpaths.typesafeResolver
    
    libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.10"))
    
    build.scala
    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)
        ))
    
    }
    
    
    sbt 控制台启动web容器, 之后 ~compile,享受编码乐趣吧,改变代码无需重启web容器
     
    BTW 有人说可能会说 lift 官方使用sbt 0.7 运行~jetty:run 也无需重启, 工程比较小时还好, 工程大时,jetty reload 还是很耗时间的
  • 相关阅读:
    字节序(Endian),大端(BigEndian),小端(LittleEndian)
    关于PHOTO SHOP CS9.0无法启动adobe updater 请重新安装应用程序和组件解决方法!
    工作·事业·人生
    多选列表Select之双击删除与添加Demo
    WIN7任务栏修复解决windows7任务栏不能停靠图标的问题
    ip地址被绑定,vmware无法共享上网,
    小屋·小篮子·祭
    基础知识提问:关于HashTable和List两个容器Add改变了属性的同一对象的问题
    [转载]正则表达式30分钟入门教程及MTracer(破解版)
    让程序更健壮,用错误还是抛异常?
  • 原文地址:https://www.cnblogs.com/ricardo/p/2344897.html
Copyright © 2011-2022 走看看