除了像常规的jetty类似tomcat的使用方式外,jetty和tomcat都可以集成maven插件
Jetty的Maven-plugin集成
通过Main函数启动jetty
这种方式很明显适合快速开发的开发人员的开发环境
在项目的POM文件的dependencies中加入
<!-- 自制Jetty插件用 -->
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
<version>9.0.0.v20130308</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jsp</artifactId>
<version>9.0.0.v20130308</version>
</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();
}
}
}
右键,运行
此时在浏览器访问:http://localhost:8081/就可以得到我们的项目,如果不要/,而要加上项目名的话,就是在
WebAppContext webAppContext = new WebAppContext(“webapp”,”/myProjectName”);
Jetty-Maven插件
Jetty-Maven插件有两个可以用
org.mortbay.jetty
在pom.xml的build->plugins里面加入
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webApp>
<contextPath>/test</contextPath>
</webApp>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>8082</port>
</connector>
</connectors>
</configuration>
</plugin>
运行maven命令:mvn jetty:run
如果没有<port>8082</port>
设置的话,可以使用mvn -Djetty.port=8082 jetty:run
修改默认的8080端口
org.eclipse.jetty
mortbay和eclipse的jetty插件都是一个东西,只是8.x版本是由mortbay在维护,后面的版本是由eclipse在维护
同样的在build->plugins加入
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.0.0.v20130308</version>
<configuration>
<httpConnector>
<port>8082</port>
</httpConnector>
</configuration>
</plugin>
运行maven命令:mvn jetty:run
如果没有<port>8082</port>
设置的话,可以使用mvn -Djetty.port=8082 jetty:run
修改默认的8080端口