Настройка LIFT для веб-проекта: генерировать с помощью mvn и управлять с помощью sbt - PullRequest
2 голосов
/ 25 ноября 2011

Я новичок в LIFT и пытаюсь найти надежные инструкции по созданию и управлению веб-проектом LIFT с помощью maven и sbt соответственно.Может кто-нибудь, пожалуйста, направьте меня (или предоставьте здесь) к современным инструкциям, как настроить sbt для проекта, созданного maven?Из каждого поста, который я написал, это выглядит как лучшая настройка для проектов LIFT: генерировать с помощью mvn, управлять с помощью sbt.Вы согласитесь?(Я не могу сгенерировать LIFT / веб-проект с помощью sbt. Правильно? SBT хорош только для управления им. Правильно?) Хотя все мои инструкции устарели.(Очевидно, я могу просто загрузить и распаковать проект архетипа, но я хочу найти более фундаментальный подход к управлению средой) Спасибо.

Ответы [ 2 ]

3 голосов
/ 25 ноября 2011

Пока я пользуюсь лифтом, мне вообще не нужен мавен, только SBT. Поэтому очень полезно прочитать раздел SBT Getting Started . Также вики-лифт содержит некоторую информацию . Но будьте уверены, что вы читаете материал, относящийся к правильной версии SBT. И, наконец, вы можете обратить внимание на мой шаблон проекта лифта на github.
Удачи с Лифтом! Это круто;)

Следующим вопросом в вашем комментарии я положил здесь несколько общих настроек из моих проектов.
Итак, это ./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

0 голосов
/ 08 февраля 2013

Ваш пробег может отличаться, но мой опыт работы с sbt был менее чем звездным (устаревшие документы, поломка при смене версии и т. Д.).Недавние улучшения IDE eclipse scala и соответствующих плагинов maven и jrebel делают его явным победителем по сравнению с использованием sbt.

Если вы будете следовать инструкциям, вы получите возможность сборки / упаковки в командной строке, но превосходную поддержку функций затмения и быстрой разработки.

См. Пример настройки проекта по адресу:

https://github.com/awkay/lift_squeryl_demo

...