Web项目的LIFT设置:使用mvn生成,并使用sbt进行管理

时间:2011-11-24 23:06:24

标签: scala maven lift sbt

我是LIFT的新手,我正在尝试找到一个可靠的说明,分别如何使用maven和sbt生成和管理LIFT Web项目。有人可以指导我(或在此提供)最新的说明如何为maven生成的项目设置sbt吗?从我发布的每个帖子来看,它看起来都是LIFT项目的最佳设置:使用mvn生成,使用sbt进行管理。你同意吗? (我不能用sbt生成LIFT / web项目。对吗?SBT只对管理它有好处。对吧?)我尝试过的每条指令都已经过时了。 (我显然可以简单地下载和解压缩原型项目,但我想找到一种更基本的方法来管理环境)谢谢。

2 个答案:

答案 0 :(得分:3)

当我使用升降机时,我根本不需要maven,只需要SBT。因此,阅读SBT Getting Started部分非常有用。此外,电梯维基包含一些information。但请务必阅读与正确SBT版本相关的材料。最后,你可以关注我在github上的lift project template
祝你好运!太棒了;)

通过在你的评论中跟随问题,我在这里放了一些来自我的项目的常见配置。
因此,./project/build.scala替代./build.sbt

import sbt._
import Keys._
import com.github.siasia._
import PluginKeys._
import WebPlugin._
import WebappPlugin._

object LiftProjectBuild extends Build {
  override lazy val settings = super.settings ++ buildSettings

  lazy val buildSettings = Seq(
    organization := "com.yourorganization",
    version      := "0.1-SNAPSHOT",
    scalaVersion := "2.9.1")

  def yourWebSettings = webSettings ++ Seq(
    // If you are using jrebel
    scanDirectories in Compile := Nil
    )

  lazy val shade = Project(
    id = "project-name",
    base = file("."),
    settings = defaultSettings ++ yourWebSettings)

  lazy val defaultSettings = Defaults.defaultSettings ++ Seq(
    name := "project-name",
    resolvers ++= Seq(
      "Typesafe Repo" at "http://repo.typesafe.com/typesafe/releases", 
      "Java.net Maven2 Repository" at "http://download.java.net/maven/2/"),

    libraryDependencies ++= {
      val liftVersion = "2.4-M5"
      Seq(
        "net.liftweb" %% "lift-webkit" % liftVersion % "compile",
        "org.eclipse.jetty" % "jetty-webapp" % "7.5.4.v20111024" % "container",
        "org.squeryl" %% "squeryl" % "0.9.5-SNAPSHOT" % "compile",
        "ch.qos.logback" % "logback-classic" % "1.0.0" % "compile",
        "org.scalatest" %% "scalatest" % "1.6.1" % "test",
        "junit" % "junit" % "4.10" % "test")
    },

    // 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")
  )
}

./项目/ build.properties

#Project properties
sbt.version=0.11.1

./项目/ plugins.sbt

resolvers += Classpaths.typesafeResolver

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse" % "1.5.0")

libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.10"))

拥有这三个文件足以配置sbt。
当然,您可以通过调用container:start

来运行您的应用程序

答案 1 :(得分:0)

您的里程可能会有所不同,但我对sbt的体验不是很好(过时的文档,版本更改的破坏等)。与使用sbt相比,最近对eclipse scala IDE和相应的maven和jrebel插件的改进使其成为明显的赢家。

如果按照说明操作,您将能够在命令行中进行构建/打包,但是对eclipse功能和快速开发的支持更高。

请参阅示例项目设置:

https://github.com/awkay/lift_squeryl_demo