The Lift Web Framework 使用与技术文档
1. 安装指南
系统要求
Lift 3.0 及以上版本需要运行在 Java 8 或更高版本的环境中。如果您使用的是 Java 6 或 Java 7,您需要使用 Lift 2.6 版本。
使用 sbt 创建新项目
若您使用的是较新版本的 sbt(如 0.13.16),可以通过 Giter8 模板创建一个新的 Lift 应用程序。
- 创建一个包含示例代码的基本 Lift 应用程序:
sbt new lift/basic-app.g8 - 或者创建一个全新的空白应用程序:
sbt new lift/blank-app.g8
按照提示完成 Lift 应用的创建。
运行服务器
进入应用文件夹后,在 sbt 中运行以下命令启动服务器:
jetty:start
默认情况下,服务器将在 http://localhost:8080 上运行。此命令会在您更改 HTML、资源或 Scala 代码时自动重新编译并重启应用。
如果您主要关注前端开发,可能会发现每次更改 CSS 或 HTML 时都重新编译和重启应用不太高效。在这种情况下,可以使用以下命令:
jetty:quickstart
start 和 quickstart 之间的区别在于,start 命令从目标目录(包含展开的 WAR 文件)中提供资产,而 quickstart 命令则从源目录中直接提供资产。
请注意,quickstart 命令前没有前导波浪线 ~。这是为了防止在资源更改时触发编译。更改的资源将直接提供。请注意,在此模式下,Scala 代码必须手动编译。
在现有项目中使用 sbt
如果您在现有的 sbt 项目中使用 Lift,需要执行以下步骤:
- 添加 xsbt-web-plugin(如果您尚未拥有它或其他启动 Servlet 应用的方法)。
- 添加 Lift 依赖。
将 xsbt-web-plugin 的最新版本下载到 project/ 文件夹中。然后在 build.sbt 文件中启用插件,例如激活 JettyPlugin:
enablePlugins(JettyPlugin)
更多关于插件的使用信息,请参考 xsbt-web-plugin 项目。
之后,您需要将 Lift 和 Logback 添加到 libraryDependencies 中:
libraryDependencies ++= {
val liftVersion = "3.3.0"
Seq(
"net.liftweb" %% "lift-webkit" % liftVersion % "compile",
"ch.qos.logback" % "logback-classic" % "1.2.3"
)
}
使用 Maven
在 pom.xml 文件中添加 Lift 依赖:
<dependency>
<groupId>net.liftweb</groupId>
<artifactId>lift-webkit_${scala.version}</artifactId>
<version>3.3.0</version>
</dependency>
其中 ${scala.version} 为 2.11 或 2.12。Scala 编译器的各个补丁版本(例如 2.12.2)与其发布系列中的所有内容都是二进制兼容的,因此您只需要前两个版本部分。
有关 Maven 集成的更多信息,请参考 项目 Wiki。
2. 项目使用说明
请参考项目的 README 文件,了解 Lift 框架的基本信息、特色以及如何创建新项目。同时,您可以通过运行不同的命令来启动服务器,并根据需要选择不同的运行模式。
3. 项目 API 使用文档
Lift 框架的 API 文档可以在 Lift 官网上找到。您可以通过访问 Lift 官网首页或直接导航到特定版本的 URL 来查看基于源代码的文档。
例如,Lift 3.2 版本的 API 可以在以下地址访问:http://liftweb.net/api/32/api/。
4. 项目安装方式
项目的安装方式已在上述 "安装指南" 部分进行了详细说明。您可以通过 sbt 或 Maven 添加 Lift 依赖,并按照相应的步骤创建新项目或在现有项目中集成 Lift。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0193- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00