2016-02-17 09:03:16 -05:00
Eclipse Jetty Canonical Repository
==================================
2017-08-09 17:41:25 -04:00
This is the canonical repository for the Jetty project, feel free to fork and contribute now!
2016-02-12 09:15:03 -05:00
2017-03-01 15:47:09 -05:00
Submitting a patch or pull request?
2016-02-17 09:03:16 -05:00
2017-03-01 15:47:09 -05:00
Make sure you have an Eclipse Contributor Agreement (ECA) on file.
2016-02-17 09:03:16 -05:00
2017-03-01 15:47:09 -05:00
- [eclipse.org/legal/ecafaq ](https://www.eclipse.org/legal/ecafaq.php )
2016-02-12 09:15:03 -05:00
2014-12-11 13:43:55 -05:00
Project description
2016-02-17 09:03:16 -05:00
-------------------
2013-08-30 10:04:21 -04:00
2015-02-11 10:18:07 -05:00
Jetty is a lightweight highly scalable java based web server and servlet engine.
2017-08-09 17:41:25 -04:00
Our goal is to support web protocols like HTTP, HTTP/2 and WebSocket in a high volume low latency way that provides maximum performance while retaining the ease of use and compatibility with years of servlet development.
2016-07-20 16:09:01 -04:00
Jetty is a modern fully async web server that has a long history as a component oriented technology easily embedded into applications while still offering a solid traditional distribution for webapp deployment.
2014-12-11 13:43:55 -05:00
- [https://projects.eclipse.org/projects/rt.jetty ](https://projects.eclipse.org/projects/rt.jetty )
2021-09-08 21:32:16 -04:00
Webapp Example
--------------
```shell
$ mkdir base & & cd base
2022-08-12 19:20:26 -04:00
$ java -jar $JETTY_HOME/start.jar --add-modules=http,ee10-deploy
2021-09-08 21:32:16 -04:00
$ cp ~/src/myproj/target/mywebapp.war webapps
$ java -jar $JETTY_HOME/start.jar
```
2022-08-12 19:20:26 -04:00
Multiple Versions Webapp Example
--------------------------------
```shell
$ mkdir base & & cd base
$ java -jar $JETTY_HOME/start.jar --add-modules=http,ee10-deploy,ee8-deploy
$ cp ~/src/myproj/target/mywebapp10.war webapps
$ cp ~/src/myproj/target/mywebapp8.war webapps
$ echo environment: ee8 > webapps/mywebapp8.properties
$ java -jar $JETTY_HOME/start.jar
```
2021-09-08 21:32:16 -04:00
Embedded Example
----------------
```java
Server server = new Server(port);
ServletContextHandler context = new ServletContextHandler(server, "/");
context.addServlet(MyServlet.class, "/*");
server.start();
```
2014-12-11 13:43:55 -05:00
Documentation
2016-02-17 09:03:16 -05:00
-------------
2014-12-11 13:43:55 -05:00
2016-07-20 16:09:01 -04:00
Project documentation is available on the Jetty Eclipse website.
2014-12-11 13:43:55 -05:00
2019-11-05 17:23:49 -05:00
- [https://www.eclipse.org/jetty/documentation ](https://www.eclipse.org/jetty/documentation )
2016-07-20 00:02:13 -04:00
Building
========
2023-04-05 13:10:07 -04:00
[Apache Maven 3.8.0 ](https://maven.apache.org/ ) and [OpenJDK ](https://adoptium.net/ ) requirements:
Branch | Maven Version | Minimum JDK | Recommended JDK
---------------|---------------|-------------| ---------------
`jetty-10.0.x` | Maven 3.8.6+ | OpenJDK 11 | OpenJDK 17 (for optional loom and http/3 support)
`jetty-11.0.x` | Maven 3.8.6+ | OpenJDK 11 | OpenJDK 17 (for optional loom and http/3 support)
`jetty-12.0.x` | Maven 3.8.6+ | OpenJDK 17 | OpenJDK 17
Full Build with All Tests:
``` shell
mvn clean install
```
Fast Build if you need jars and distribution (not running tests, checkstyle, enforcer, license check):
2017-03-01 15:47:09 -05:00
``` shell
2023-04-05 13:10:07 -04:00
mvn -Pfast clean install
2016-07-20 00:02:13 -04:00
```
2023-04-05 13:10:07 -04:00
Optional build tools:
2016-07-20 00:02:13 -04:00
2023-04-05 13:10:07 -04:00
* [`graphviz` ](https://graphviz.org/ ) - used by asciidoctor in the jetty-documentation build to produce various graphs
* [`Docker` ](https://www.docker.com/ ) - used to run some integration tests for testing third party integrations
2016-07-20 00:02:13 -04:00
2023-04-05 13:10:07 -04:00
Once the build is complete, you can find the built Jetty Maven artifacts in your Maven local repository.
Along with the following locations of note:
2016-07-20 00:02:13 -04:00
2023-04-05 13:10:07 -04:00
Branches | Location | Description
---------------|-------------------------------------------------------------------|---------
all | `jetty-home/target/jetty-home-<ver>.tar.gz` | The Jetty Home standalone tarball
`jetty-10.0.x` | `jetty-runner/target/jetty-runner-<ver>.jar` | The Jetty Runner uber jar
`jetty-11.0.x` | `jetty-runner/target/jetty-runner-<ver>.jar` | The Jetty Runner uber jar
`jetty-12.0.x` | `jetty-ee10/jetty-ee10-runner/target/jetty-ee10-runner-<ver>.jar` | The Jetty Runner uber jar for ee10/Servlet 6 (jakarta.servlet) webapps
`jetty-12.0.x` | `jetty-ee9/jetty-ee9-runner/target/jetty-ee9-runner-<ver>.jar` | The Jetty Runner uber jar for ee9/Servlet 5 (jakarta.servlet) webapps
`jetty-12.0.x` | `jetty-ee8/jetty-ee8-runner/target/jetty-ee8-runner-<ver>.jar` | The Jetty Runner uber jar for ee8/Servlet 4 (javax.servlet) webapps
2016-07-20 00:02:13 -04:00
2023-04-05 13:10:07 -04:00
Note: The build tests do a lot of stress testing, and on some machines it is necessary to set the
file descriptor limit to greater than 2048 for the tests to all pass successfully (check your `ulimit -n` value).
2014-12-11 13:43:55 -05:00
Professional Services
2016-02-17 09:03:16 -05:00
---------------------
2014-12-11 13:43:55 -05:00
2019-11-05 17:23:49 -05:00
Expert advice and production support are available through [Webtide.com ](https://webtide.com ).