<?php
/**
 * Copyright (c) 2014, 2015, 2016, 2018 Eclipse Foundation.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Christopher Guindon (Eclipse Foundation) - Initial implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>

<!-- Main content area -->
<div id="midcolumn">
  <h1><?php print $pageTitle;?></h1>
  <div class="paragraph">
  <p>The most recent releases of previous versions are below.
  Earlier releases in a minor release version are available in <a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution">Maven Central.</a></p>
  </div>
  <div class="paragraph">
  <p><strong>Note:</strong> The canonical repository for Jetty is Maven Central.  All releases are always available there first and this download page may lag a bit update wise as post release resources are put into place.  You can always browse for Jetty releases <a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution">here</a>.</p>
  </div>
  <table class="frame-all grid-all stretch">
  <caption class="title">Previous Downloads</caption>
  <colgroup>
  <col style="width: 25%;">
  <col style="width: 25%;">
  <col style="width: 25%;">
  <col style="width: 25%;">
  </colgroup>
  <thead>
  <tr>
  <th class="halign-left valign-top">Release</th>
  <th class="halign-left valign-top"></th>
  <th class="halign-left valign-top"></th>
  <th class="halign-left valign-top">Note</th>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td class="halign-left valign-top"><p>9.3.29.v20201019</p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.3.29.v20201019/jetty-distribution-9.3.29.v20201019.zip">.zip</a></p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.3.29.v20201019/jetty-distribution-9.3.29.v20201019.tar.gz">.tgz</a></p></td>
  <td class="halign-left valign-top"><p>End of Life (EOL)</p></td>
  </tr>
  <tr>
  <td class="halign-left valign-top"><p>9.2.26.v20180806</p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.2.26.v20180806/jetty-distribution-9.2.26.v20180806.zip">.zip</a></p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.2.26.v20180806/jetty-distribution-9.2.26.v20180806.tar.gz">.tgz</a></p></td>
  <td class="halign-left valign-top"><p>End of Life (EOL)</p></td>
  </tr>
  <tr>
  <td class="halign-left valign-top"><p>9.1.6.v20160112</p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.1.6.v20160112/jetty-distribution-9.1.6.v20160112.zip">.zip</a></p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.1.6.v20160112/jetty-distribution-9.1.6.v20160112.tar.gz">.tgz</a></p></td>
  <td class="halign-left valign-top"><p>End of Life (EOL)</p></td>
  </tr>
  <tr>
  <td class="halign-left valign-top"><p>9.0.7.v20131107</p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.0.7.v20131107/jetty-distribution-9.0.7.v20131107.zip">.zip</a></p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.0.7.v20131107/jetty-distribution-9.0.7.v20131107.tar.gz">.tgz</a></p></td>
  <td class="halign-left valign-top"><p>End of Life (EOL)</p></td>
  </tr>
  </tbody>
  </table>
  <p><strong>Note:</strong> Release notes can be found in the <code>VERSION.txt</code> file included with the distribution and on the <a href="https://github.com/eclipse/jetty.project/releases">GitHub Releases</a> page for the Jetty project.
  Release notes are also made available on the <a href="https://www.eclipse.org/jetty/mailinglists.html">jetty-announce@eclipse.org mailing list.</a></p>
  <div class="sect2">
  <h3 id="_jetty_p2_provisioning">Jetty P2 Provisioning</h3>
  <p>These provisioning addresses are not for general use and are provided strictly for OSGI users.</p>
  <div class="ulist">
  <ul>
  <li>
  <p>Composite Jetty 9 P2 Provisioning - http://download.eclipse.org/jetty/updates/jetty-bundles-9.x</p>
  </li>
  </ul>
  </div>
  </div>
</div>
<!-- ./end  #midcolumn -->

<!-- Start of the right column -->
<!--
<div id="rightcolumn">
  <div class="sideitem">
    <h2>Related Links</h2>
    <ul>
      <li><a target="_self" href="/eclipse.org-common/themes/solstice/docs/">Documentation</a></li>
    </ul>
  </div>
</div>
-->
<!-- ./end  #rightcolumn -->
