搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

jetty/jetty.project

开发工具

轻量级 Java Web 服务器与 Servlet 引擎,可独立部署 Web 应用,也可嵌入 Java 程序运行。

4,096
2,033
Java
NOASSERTION
创建于 15 年前

项目介绍

Eclipse Jetty 是一个轻量、异步的 Java Web 服务器和 Servlet 引擎,支持 HTTP/1、HTTP/2、HTTP/3、WebSocket 等协议,目标是在保持 Servlet 开发习惯和兼容性的同时,以高并发、低延迟的方式提供服务。它主要有两种用法:作为传统独立服务器部署 WAR 包,或作为组件嵌入 Java 应用。

适用对象是构建 Web 应用或服务的 Java 开发者,以及把 Web 应用部署到 Jetty 分发包上的运维人员。官方文档按用途分为三部分:面向独立安装和部署的运维指南、面向嵌入 Jetty 库的编程指南,以及面向项目贡献者的贡献指南(文档入口、运维指南、编程指南)。

快速使用

最小的独立部署需要包含 start.jar 的 Jetty 主目录、Java 运行时和已构建的 WAR 包。在一个空目录中,先添加 HTTP 和 Jakarta EE 11 部署模块,把 WAR 放进 webapps/,再启动 Jetty:

mkdir jetty-base && cd jetty-base
java -jar $JETTY_HOME/start.jar --add-modules=http,ee11-deploy
cp ~/src/myproj/target/mywebapp.war webapps
java -jar $JETTY_HOME/start.jar

--add-modules 会生成基础配置;start.jar 运行后,Jetty 即对外提供已部署的 Web 应用。若要在同一实例中并列部署不同 Servlet 环境的 Web 应用,额外添加 ee8-deploy 模块,并在较旧的 Web 应用旁放置内容为 environment: ee8 的属性文件(Web 应用示例、多版本示例)。

嵌入使用时,可以通过构造 Server、设置 Handler 并调用 start() 启动 Jetty:

Server server = new Server(port);
server.setHandler(new MyHandler());
server.start();

Servlet 上下文也可以用 ServletContextHandler 和 addServlet() 以同样方式挂载(嵌入示例、嵌入 Servlet 示例)。从源码构建使用 Maven:克隆仓库后运行 mvn -Pfast clean install,其中 fast profile 会跳过测试和其他检查(构建说明)。

使用约束

独立使用需要 Java 运行时和包含 start.jar 的 Jetty 分发包;模块名(http、ee11-deploy、ee8-deploy)决定启用哪些部署能力。嵌入使用要求把 Jetty 库加入应用 classpath。仓库的 GitHub 元数据未给出许可证标识,再分发或商用前需确认项目的许可条款。生产环境的技术支持由 Webtide 单独提供(商业支持)。

HotRepo 点评

该项目在 2026-11-06 的 Java 日榜上排名第 21,当天没有记录到 Star 变化,因此站内可见记录反映的是一次上榜位置,而不是持续增长。项目自 2011 年延续至今,作为可嵌入的 Java 服务器已有稳定定位;它在本站的价值更多来自协议覆盖范围以及“独立部署 + 嵌入使用”两种方式,而不是短期热度。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。