Apache Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)内容,Maven能够通过信息中心管理一个项目构建、报告和文档。它是一个理想的工具用来构建Web应用项目。这项目可以使用Jetty Maven插件在部署模式下运行Web应用。
你能使用Maven来构建嵌入式Jetty应用程序和标准的基于Web应用。
为了理解使用Jetty构建和运行的基本操作,首先阅读:
1) Jetty HelloWorld教程
http://wiki.eclipse.org/Jetty/Tutorial/Jetty_HelloWorld
2) 嵌入Jetty教程
http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty
? ? ? Maven使用约定优先于配置,因此最好使用Maven的项目结构,正如Maven推荐的。你能使用Archetypes快速设置Maven项目,但是对于本教程,我们将手动的设置结构:
mkdir JettyMavenHelloWorld
cd JettyMavenHelloWorld
mkdir -p src/main/java/org/example
? ? ? 使用编辑器创建一个文件src/main/java/org/example/HelloWorld.java,内容如下:
package org.example;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.Request;
importorg.eclipse.jetty.server.handler.AbstractHandler;
?
public class HelloWorld extendsAbstractHandler
{
? ?public void handle(String target,
? ? ? ? ? ? ? ? ? ? ? Request baseRequest,
? ? ? ? ? ? ? ? ? ? ? HttpServletRequestrequest,
? ? ? ? ? ? ? ? ? ? ? HttpServletResponseresponse)
? ? ? ?throws IOException, ServletException
? ? {
? ? ? ?response.setContentType("text/html;charset=utf-8");
? ? ? ?response.setStatus(HttpServletResponse.SC_OK);
? ? ? ?baseRequest.setHandled(true);
? ? ? ?response.getWriter().println("
HelloWorld
");
? ? }
?
? ?public static void main(String[] args) throws Exception
? ? {
? ? ? ?Server server = new Server(8080);
? ? ? ?server.setHandler(new HelloWorld());
?
? ? ? ?server.start();
? ? ? ?server.join();
? ? }
}
? ? ? pom.xml声明项目名称及其依赖。使用编辑器创建一个pom.xml文件,内容如下:
? ? ? ? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
? ? ? ?xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
?
?4.0.0
?org.example
?hello-world
?0.1-SNAPSHOT
?jar
?Jetty HelloWorld
?
?
? ?9.0.2.v20130417
?
?
?
? ?
? ? ?org.eclipse.jetty
? ? ?jetty-server
? ? ?${jettyVersion}
? ?
?
?
?
? ?
? ? ?
? ? ? ?
? ? ? ?org.mortbay.jetty
? ? ? ?jetty-maven-plugin
? ? ? ?${jettyVersion}
? ? ?
? ? ?
? ? ? ?org.codehaus.mojo
? ? ? ?exec-maven-plugin
? ? ? ?1.1
? ? ? ?
? ? ? ? ?java
? ? ? ?
? ? ? ?
? ? ? ? ?org.example.HelloWorld
? ? ? ?
? ? ?
? ?
?
? ? ? 注:使用9.0.2.v20130417版本可以找到下面的类:
importorg.eclipse.jetty.server.handler.AbstractHandler;
? ? 但是使用Jetty的最新版本9.2.3.v20140905无法导入该类。