本机环境

JDK 7

Maven 3.2

Jetty 9.2

Eclipse Luna

pom.xml 配置

在你的 pom.xml 文件中添加 jetty 插件的描述信息(查看Jetty更多的版本信息):

[...]

org.eclipse.jetty

jetty-maven-plugin

9.2.8.v20150217

[...]

启动 & 停止

命令行方式启动 jetty mvn jetty:run,可以通过 Ctrl + C 停止 jetty 服务。

或者,在 eclipse 中选中项目 --> 右键 --> Run As --> Maven build...,在 Goals 栏输入 jetty:run(与命令行方式相比,仅仅是

少了 mvn 前缀,为方便起见,以下均以命令行方式介绍。)

jetty 9 部署的项目的 Context path 默认是 /,也就是说,项目的访问入口地址是:http://localhost:8080(不带项目名)

如果你希望通过命令 mvn jetty:stop 执行关闭 jetty 服务,你需要像下面一样在你的 pom.xml 配置文件中添加一个特殊的端口和控制键:

[...]

shutdown

9966

[...]

你仍可以通过 mvn jetty:run 启动 jetty 服务,可以通过 mvn jetty:stop 来停止 jetty 服务。

取消文件映射缓存

jetty 默认开启了 useFileMappedBuffer,在 jetty 运行期间,页面所使用的静态文件(如 css 文件等)不允许修改。如果你尝试去修改它

们,保存的时候就会出现 Save could not be completed.

解决办法,找到 %repo%/org/eclipse/jetty/jetty-webapp/9.2.8.v20150217/jetty-webapp-9.2.8.v20150217.jar(%repo% 表示你

本地的 maven 仓库的目录,另外,将 9.2.8.v20150217 换成你所使用的版本)。用压缩工具打开它, 找到 jetty-webapp-9.2.8.v2015021

7.jar/org/eclipse/jetty/webapp/webdefault.xml,将 webdefault.xml 文件解压缩一份出来,用文本编辑器打开它,搜索找到

useFileMappedBuffer 配置的行,将 true 改成 false 以禁掉缓存。

useFileMappedBuffer

false

先确认 jetty 服务已经停止,将原文件 jetty-webapp-9.2.8.v20150217.jar/org/eclipse/jetty/webapp/webdefault.xml 删除,将刚

才那份修改好的 webdefault.xml 文件重新压缩进去即可。

端口配置

jetty 默认使用的端口是 8080,命令行的方式修改端口的命令是:mvn -Djetty.port=8081 jetty:run 。pom.xml 配置方式如下:

[...]

8081

[...]

自动热部署

在你的 pom.xml 中添加如下配置:

[...]

2

[...]

默认值是 0。大于 0 的数值表示开启,0 表示关闭,单位为秒。以配置数值为一个周期,自动的扫描文件检查其内容是否有变化,如果发现文件的

内容被改变,则自动重新部署运用。命令行的方式:mvn -Djetty.scanIntervalSeconds=2 jetty:run 。

手动重加载

在你的 pom.xml 文件中添加如下配置,reload 的可选值 :[automatic|manual]

[...]

manual

[...]

默认值为 automatic,它与大于 0 的 scanIntervalSeconds 节点一起作用,实现自动热部署的工作。设为 manual 的好处是,当你改变文件

内容并保存时,不会马上触发自动扫描和重部署的动作,你还可以继续的修改,直至你在 Console 或命令行中敲回车键(Enter)的时候才触发重

新加载的动作。这样可以更加的方便调试修改。命令行的方式是:mvn -Djetty.reload=manual jetty:run 。

访问日志

在你的 pom.xml 文件添加如下配置:

[...]

target/access-yyyy_mm_dd.log

yyyy_MM_dd

yyyy-MM-dd HH:mm:ss

GMT+8:00

true

true

120

true

[...]

org.eclipse.jetty.server.NCSARequestLog 是 org.eclipse.jetty.server.RequestLog 的一个实现类。

org.eclipse.jetty.server.NCSARequestLog 是一种伪标准的 NCSA 日志格式。下面是一些节点参数的解释:

filename:日志文件的名称

filenameDateFormat:日志文件的名称的日期格式,它要求日志文件名必须含有 yyyy_mm_dd 串

logDateFormat:日志内容的时间格式

logTimeZone:时区

append:追加到日志

logServer:记录访问的主机名

retainDays:日志文件保存的天数, 超过删除

logCookies:记录 cookies

启动 jetty 服务,在项目的 target 目录下会生成一个 access-2015_06_23.log 文件,该文件中的其中一条记录如下:

localhost 0:0:0:0:0:0:0:1 - - [2015-06-23 01:17:05] "GET /css/main.css HTTP/1.1" 304 -

"http://localhost:8081/"

"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)

Chrome/35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0" "JSESSIONID=2gyikovul2iz168116l2afo4f"

转储快照

在你的 pom.xml 文件添加如下配置:

[...]

true

[...]

dumpOnStart 默认值为 false,如果设为 true,jetty 在启动时会把当前服务进程的内存信息输出到控制台中,但这并不会保存到文件中。

WEB上下文

最常用的是 contextPath,它的配置如下:

[...]

/${project.artifactId}

[...]

contextPath 的默认值的 /,${project.artifactId} 引用了 节点的值,即项目的名称。

项目的静态资源文件目录默认是 src/main/webapp,如果静态资源目录有多个,或者不在默认的 src/main/webapp 目录下,可做如下配置:

[...]

/${project.artifactId}

${project.basedir}/src/main/webapp

${project.basedir}/commons

[...]

引用静态资源文件时,路径不包含资源目录的名称,如 commons/main.css,引用方式为:

更多参数信息可参考 jetty-maven-plugin.html#configuring-your-webapp

完整的配置

附 pom.xml 文件中 jetty 插件的完整配置片段:

[...]

org.eclipse.jetty

jetty-maven-plugin

9.2.8.v20150217

8081

shutdown

9966

manual

true

/${project.artifactId}

target/access-yyyy_mm_dd.log

yyyy_MM_dd

yyyy-MM-dd HH:mm:ss

GMT+8:00

true

true

120

true

[...]

更多有关 jetty 的配置信息可参考 http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html

java maven jetty_maven jetty 插件使用相关推荐

  1. Eclipse运行maven的jetty插件内存溢出解决

    系统运行在MAVEN中的jetty插件下,当在ECLIPSE运 clean jetty:run时系统提示 OutOfMemoryError: PermGen space. 解决办法: 设置run as ...

  2. Eclipse下通过Maven的Jetty插件运行Web工程的配置,包括启动https

    摘要: 之前写了Eclipse下怎么通过 Maven 的 Tomcat 插件来运行 Web 工程.近日听说 Jetty 可以动态加载修改后的类, 为了能够更快提高开发效率, 绝对要尝试一下. 引用来源 ...

  3. 如何通过Maven的Jetty插件运行Web工程

    From: https://blog.wuwii.com/maven-jetty.html Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行 ...

  4. SpringMVC整合DWR(Maven项目+jetty插件运行)

    SpringMVC的maven项目创建可以参考这篇文章:http://www.cnblogs.com/crazy-fox/archive/2012/02/18/2357619.html 建立一个Spr ...

  5. 内置在maven项目的服务器,IDEA使用maven中tomcat插件来启动服务器配置

    一 .在项目pom文件中配置tomcat 先添加如下配置: org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.7 1.7 org.apach ...

  6. Jetty在win10上的配置,IDEA中配置Jetty,Maven中配置Jetty插件,Eclipse中配置Jetty插件及其使用,通过java代码内嵌Jetty Server

    1.下载Jetty 下载地址:http://www.eclipse.org/jetty/download.html 2.在windows上运行jetty 一.将下载的jetty解压到D:\instal ...

  7. maven项目 jetty_如何使用Java,Maven,Jetty创建Web应用程序项目

    maven项目 jetty 在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在一个名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编 ...

  8. 如何使用Java,Maven,Jetty创建Web应用程序项目

    在本文中,我们使用Maven Archetype插件创建一个简单的Web应用程序. 我们将在名为Jetty的Servlet容器中运行此Web应用程序,添加一些依赖项,编写简单的Servlet,并生成W ...

  9. 使用Maven Jetty插件

    尽管很长一段时间以来我一直在使用Maven,但直到最近我才使用过Jetty插件. 为了能够测试REST客户端,我创建了一个Servlet,向我显示了所有传入的参数和带有传入请求的标头. 为了在容器中运 ...

最新文章

  1. es6箭头函数(=)与展开特性运算符(...)的使用
  2. 常见的CSS属性和值CascadingStyleSheets
  3. dump文件分析工具_使用这个 Python 工具分析你的 Web 服务器日志文件 | Linux 中国...
  4. 使用python完成冒泡排序_python 冒泡排序优化,用递归实现冒泡排序
  5. Oracle-(if/case/以及模拟注册登录)练习-20131015
  6. 理想汽车致歉并宣布召回10469台车,官方:不影响后续生产和销售
  7. python 复制列表内容_Python复制列表列表
  8. java 7 学习笔记_Java学习笔记7
  9. java中Executor、ExecutorService、ThreadPoolExecutor介绍(转)
  10. 503.下一个更大元素II(力扣leetcode) 博主可答疑该问题
  11. mysql for mac 重置密码_Mac版,mysql重置密码
  12. SSD固态盘已坏的数据就恢复不了吗?
  13. java二维数组周边元素_求出二维数组主对角线、次对角线以及周边元素之和
  14. 309. Best Time to Buy and Sell Stock with Cooldown**
  15. 我们“看到”的物联网,未来真正走向领域是这些方面....
  16. 快速定位网页中元素在源代码中的位置
  17. java游戏服务端实现
  18. Java业务系统配置管理设计方案实现
  19. 微信小程序:设置文本字体粗细font-weight
  20. 【小甲鱼C语言】课后笔记第一章第四节——数据类型

热门文章

  1. android高仿苹果计算器,Android仿IOS计算器源码
  2. leaflet+geoJSON实现绘制区域边界和边界高亮效果
  3. 报告摘读-中国手机屏幕入口价值研究报告艾瑞咨询,2015
  4. 记录nubia z17miniS 刷机
  5. 互联网公司面试大全总结
  6. STM32标准外设库更新(F0,F1,F3,F4,L1)
  7. PIC16F887 单片机 温度检测 DS18B20
  8. qrobot开发总结之android语音识别
  9. woj 1542 Countries
  10. woj4751 上网