Maven-Jetty的插件集成快速启动

除了像常规的jetty类似tomcat的使用方式外,jetty和tomcat都可以集成maven插件

Jetty的Maven-plugin集成

通过Main函数启动jetty

这种方式很明显适合快速开发的开发人员的开发环境
在项目的POM文件的dependencies中加入


<dependency>
    <groupId>org.eclipse.jetty.aggregategroupId>
    <artifactId>jetty-allartifactId>
    <version>9.0.0.v20130308version>
  dependency>
  <dependency>
    <groupId>javax.servletgroupId>
    <artifactId>javax.servlet-apiartifactId>
    <version>3.1.0version>
  dependency>
  <dependency>
     <groupId>org.eclipse.jettygroupId>
     <artifactId>jetty-jspartifactId>
     <version>9.0.0.v20130308version>
  dependency>

如果jetty-all找最新版本,可能会拉取有问题,而且9.0版本是mortbay在维护,后面交由eclipse在维护

在Java代码中编写入口文件,写一个Main函数:

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;

/**
 * Jetty入口文件
 * @author Nick
 */
public class Application {

    public static void main(String[] args) {

        int port = 8081;
        Server server = new Server(port);
        WebAppContext webAppContext = new WebAppContext("webapp","/");  

        webAppContext.setDescriptor("webapp/WEB-INF/web.xml");  
        webAppContext.setResourceBase("src/main/webapp");  
        webAppContext.setDisplayName("Jetty");  
        webAppContext.setClassLoader(Thread.currentThread().getContextClassLoader());  
        webAppContext.setConfigurationDiscovered(true);  
        webAppContext.setParentLoaderPriority(true);  

        try {
            server.setHandler(webAppContext);  
            server.start();
            System.out.println("server is  start, port is "+port+"............");  
            server.join();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

右键,运行
Maven-Jetty的插件集成快速启动_第1张图片

此时在浏览器访问:http://localhost:8081/就可以得到我们的项目,如果不要/,而要加上项目名的话,就是在
WebAppContext webAppContext = new WebAppContext(“webapp”,”/myProjectName”);

Jetty-Maven插件

Jetty-Maven插件有两个可以用

org.mortbay.jetty

在pom.xml的build->plugins里面加入

<plugin>
        <groupId>org.mortbay.jettygroupId>
        <artifactId>jetty-maven-pluginartifactId>
        <version>8.1.16.v20140903version>
        <configuration>
            <scanIntervalSeconds>10scanIntervalSeconds>
            <webApp>
                <contextPath>/testcontextPath>
            webApp>
            <connectors>
                <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                    <port>8082port>
                connector>
            connectors>
        configuration>
    plugin>

运行maven命令:mvn jetty:run
如果没有8082设置的话,可以使用mvn -Djetty.port=8082 jetty:run修改默认的8080端口

org.eclipse.jetty

mortbay和eclipse的jetty插件都是一个东西,只是8.x版本是由mortbay在维护,后面的版本是由eclipse在维护

同样的在build->plugins加入

<plugin>
    <groupId>org.eclipse.jettygroupId>
        <artifactId>jetty-maven-pluginartifactId>
        <version>9.0.0.v20130308version>
        <configuration>
            <httpConnector>
                <port>8082port>
            httpConnector>
        configuration>
    plugin>

运行maven命令:mvn jetty:run
如果没有8082设置的话,可以使用mvn -Djetty.port=8082 jetty:run修改默认的8080端口

你可能感兴趣的:(J2EE)