Lift和Lifty入门

时间:2012-07-31 13:56:36

标签: scala lift sbt lifty

我正在尝试使用Lift框架,阅读Lift in Action。我想跟随这些示例,但我立即遇到了安装Lift的问题。我知道有很多方法可以轻松地开始使用Lift,但我想使用Lifty,正如本书所做的那样,能够遵循它。

问题在于,自本书出版以来,Lifty和sbt(以及Lift也!)都向前推进了。我从Ubuntu的Typesafe存储库安装了sbt。现在我被困在尝试安装Lifty。

关注Lifty documentationthis answer on SO - 由于Lifty尚未发布sbt 0.11.3的二进制文件 - 我想我应该在~/.sbt/plugins/build.sbt中添加以下内容:

resolvers += Resolver.url("sbt-plugin-releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)

addSbtPlugin("org.lifty" % "lifty" % "1.7.4")

libraryDependencies +=
  Defaults.sbtPluginExtra(
    "org.lifty" % "lifty" % "1.7.4",
    "0.11.2",
    "2.9.1"
  )

后者是告诉sbt使用Lifty插件sbt 0.11.2。

现在sbt似乎能够下载Lifty并正确启动,但我没有lifty命令。所以当我做的时候

lifty learn lift https://raw.github.com/Lifty/lifty/master/lifty-recipe/lifty.json

sbt抱怨:

[error] Not a valid key: lifty (similar: history)
[error] lifty learn lift https://raw.github.com/Lifty/lifty/master/lifty-recipe/lifty.json
[error]      ^

我应该如何安装Lifty?请注意,我是Scala,sbt和Lift的新手。

修改

我设法通过降级到sbt 0.7.7来安装Lifty。但是如果我做的话

> lift create project-blank
> reload
> update

我收到错误

[error] sbt.ResolveException: unresolved dependency: net.liftweb#lift-webkit_2.9.1;2.3-RC3: not found
[error] unresolved dependency: org.scala-tools.testing#specs_2.9.1;1.6.6: not found
[info] == update ==
[error] Error running update: sbt.ResolveException: unresolved dependency: net.liftweb#lift-webkit_2.9.1;2.3-RC3: not found
[error] unresolved dependency: org.scala-tools.testing#specs_2.9.1;1.6.6: not found

1 个答案:

答案 0 :(得分:0)

我讨厌打破它,但是生命已经消失了。在撰写本文时,sbt的稳定性为0.13.0。查看sbt community repo,发布的唯一版本是1.7.4 sbt 0.11.2。

official website说:

  

Lift Cookbook是了解如何使用Lift的最新资源。

有一个名为Creating a Lift Project from Scratch Using SBT的部分:

  

问题

     

您希望从头开始创建一个Lift Web项目,而不使用官方Lift网站上提供的ZIP文件。

     

解决方案

     

您需要自己配置SBT和Lift项目。幸运的是,只需要五个小文件。   首先,在project/plugins.sbt创建一个SBT插件文件(所有文件名都是相对于项目根目录给出的):

addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "0.3.0")
     

此文件告诉SBT您将使用xsbt-web-plugin。

     

接下来,创建一个SBT构建文件build.sbt ...

不幸的是xsbt-web-plugin 0.3.0适用于sbt 0.12。所以你必须要么使用sbt 0.12,要么修改一下指令。 sbt 0.13的最新xsbt-web-plugin为0.4.2,所以在project/plugins.sbt put:

addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "0.4.2")

resolvers += Resolver.sonatypeRepo("public")

我能够按照页面上的其他说明进行操作...... 最终我把所有东西都拉到了sbt 0.13,并且能够启动容器:

> container:start
[info] Compiling 1 Scala source to /foo/sbt-lift-test/target/scala-2.10/classes...
[info] jetty-8.1.7.v20120910
....
[success] Total time: 2 s, completed Sep 20, 2013 10:34:22 PM

使用浏览器打开http://localhost:8080/

  

欢迎您,您现在有一个正常工作的电梯安装