版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MavenJettyPlugin配置指南(翻译)Jetty版本信息Jetty7-此插件更名为jetty-maven-plugin,以便更符合maven2的协定。为了在Web应用做快速应用开发做准备,详见多Web应用源目录。为了在Jetty里运行一个Web应用,你如果按照Maven默认的做法构造(resources文件存放,${basedir}/src/main/webapp下Classes文件存放在${project.build.outputDirectory}下,web.xml的配置描述${basedir}/src/main/webapp/WEB-INF/web.xml),你不需要配置任何其它东西。只需输入:mvnjetty:run这将在端口为8080的Jetty服务器上启动你的项目。Jetty将持续运行,直到插件是明确停止,例如,按下<ctrl-c>,您也可以使用mvnjetty:stop命令。委托这个插件运行Web应用是非常方便的,因为它可以配置成能定期扫描Web应用的任何改变和自动部署Web应用。这就可以消除开发周期中编译和部署的步骤从而更加富有成效。你使用的IDE时对项目做的任何改变,都将直接自动导入到当前运行的web容器里,使您可以立即对其进行测试,立竿见影。如果不管出于什么原因,你总不能运行一个未组合过的web应用吧,在下文讨论中提到这个插件同样也支持jetty:run-war和jetty:run-exploded命令。关于其他命令的更多信息请查阅Jetty文档中的mvnjetty:runpage、mvnjetty:run-explodedpage、mvnjetty:run-warpage自动执行插件有时候,例如在做集成测试时,你当然希望在测试开始时自动运行你的项目,测试完成时停止,而不只是手动的在命令行执行mvnjetty:run吧。要做到这一点,你需要为jetty插件创建几个vexecution>脚本,并使用vdaemon>truev/daemon>配置选项来预防Jetty无限期运行,迫使它只在执行Maven时才运行。像下面pom.xml片段中描述的pre-integration-test和post-integration-test就是用来触发执行和关闭Jetty:vplugin>vgroupId>org.mortbay.jettyv/groupId>vartifactId>maven-jetty-pluginv/artifactId>vversion>6.1.10v/version>vconfiguration>vscanIntervalSeconds>10v/scanIntervalSeconds>vstopKey>foov/stopKey>vstopPort>9999v/stopPort>v/configuration>vexecutions>vexecution>vid>start-jettyv/id>vphase>pre-integration-testv/phase><goals>vgoal>runv/goal></goals>vconfiguration>vscanIntervalSeconds>Ov/scanIntervalSeconds>vdaemon>truev/daemon></configuration></execution><execution>vid>stop-jettyv/id>vphase>post-integration-testv/phase><goals>vgoal>stopv/goal></goals></execution></executions></plugin>注意:Maven默认都是通过org.apache.maven.plugins的groupld来查找插件的,即使这个groupld跟上面要表达的内容完全不同。为了更明确的指向这个groupld是我们需要的插件,唯一的办法就是在settings.xml也做如下设置:<profile>vpluginGroups>vpluginGroup>org.mortbay.jettyv/pluginGroup>v/pluginGroups></profile>如何通过命令行停止插件委托Jetty插件无限期运行的目标包括run、run-war和run-exploded。你可以在视窗控制终端(如DOS窗口)使用vctrl-c>关闭它,或者在另一个视窗控制终端使用stop目标关闭。如果你希望能使用mvnjetty:stop执行关闭命令,则需要你在插件中配置一个特殊的端口和控制键。下面是一个例子配置:<plugin>vgroupId>org.mortbay.jettyv/groupId>vartifactId>maven-jetty-pluginv/artifactId>vversion>6.1.10v/version><configuration>vstopPort>9966v/stopPort>vstopKey>foov/stopKey>v/configuration>v/plugin>开始:mvnjetty:start关闭:mvnjetty:stop如何配置插件配置公共的run,run-war和run-exploded目标不管你执行哪一个Jetty目标,下述的配置参数都是可用的。一般来说它们分为应用于Web容器的配置和应用于具体web应用的配置:容器级配置Connectors可选.一组org-mortbay-jettyQonnector对象,包含jetty的端口监听。女口果你不扌旨定任何一个NIO的org.mortbay-jetty.nio-SelectChannelConnector,将默认配置一个8080端口。当然,你可以在命令行使用系统参数jetty.port改变默认端口。例如"mvn-Djetty.port=9999jetty:run"。另外,您也可以指定许多您想要的连接。jettyConfig可选。除插件配置参数外,你也可以指定一个jetty.xml文件的路径。当你有其他的web应用和操作需要部署时,或者一些你无法在插件中配置的jetty对象,你就可以使用到它,。scanIntervalSeconds可选渺]。在很短的时间间隔内在扫描web应用检查是否有改变,如果发觉有任何改变则自动热部署。默认为0,表示禁用热部署检查。任何一个大于0的数字都将表示启用。systemPropertie可选。它们允许你在设置一个插件的执行操作时配置系统属性.更多的信息请查阅SettingSystemProperties.userRealms可选。一组org.mortbay.jetty.securityUserRealm实现。请注意,它没有一个默认的Realm。如果你在你的web.xml应用了一个Realm,你需要在这里指定一个对应的Rleam。requestLog可选。一个org.mortbay.jetty.RequestLog请求日志接口的实现。比如org.mortbay-jetty.NCSARequestLog就是一个作为NCSA格式的实现。[译注:(美国)国家超级计算技术应用中心(NCSA)公用格式是常用的标准日志格式]“手动重载”从Jetty6.2・0pre0版本起,添加了一个新的可用组件,用于控制web应用的重新部署。配置参数:vreload>[manual|automatic]v/reload>当你设置成手动模式后,web应用不会自动的扫描和重部署。相反,用户可以控制的Web应用时,通过键入”回车换行键”重载。当设置成自动模式时,将根据scanIntervalSeconds参数的设置不定时的扫描和自动重部署。你也能通过在命令行使用系统参数-Djetty.reload配置选择重载的模式。比如:"mvn-Djetty.reload=manualjetty:run"将强制手动重载,不管pom.xml文件里如何配置。同理:"mvn-Djetty.reload=automatic-Djetty.scanlntervalSeconds=10jetty:run"每隔十秒中后台将重载一次,而不管pom.xml文件里如何配置。Web应用级配置contextPath可选。这个contex地址指向你的webapp.默认情况下,它被设置成该项目的pom.xml的<artifactId>。当然你也可以设置一个你喜欢的从而覆盖它。tmpDir可选。它作为web应用的临时目录。它默认设置在{${basedir}/target}下,但是你也可在这里改变它的路径。overrideWebXml可选.它是一个应用于web应用的web.xml的备用web.xml文件•这个文件可以存放在任何地方•你可以根据不同的环境中(如测试、开发等等)利用它增加或修改一个web.xml配置.webDefaultXml可选.webdefault.xml文件用来代替webapp默认提供给jetty的文件.从6.1.6rc0发行版开始,一个替代的更灵活的方式是配置web应用时使用webAppConfig元素代替上面列出的那些单独的参数。使用webAppConfig元素,你能有效的调用org.mortbay.jetty.webapp.WebAppContext类中任何setter方法。下面显示的列子将展示这个元素跟它上面的例子比较是如何配置同样的特性的(当然它们还有更多的特性能让你设置):vproject>vplugins><plugin>vgroupId>org.mortbay.jettyv/groupId>vartifactId>maven-jetty-pluginv/artifactId><configuration>vscanIntervalSeconds>10v/scanIntervalSeconds><!一web应用的配置-->vcontextPath>/biggerstrongerbetterfasterv/contextPath>vtmpDir>target/not/necessaryv/tmpDir>vwebDefaultXml>src/main/resources/webdefault.xmlv/webDefaultXml>voverrideWebXml>src/main/resources/override-web.xmlv/overrideWebXml><!—从jetty6.1.6rc0起你能用webAppConfig元素代替vwebAppConfig>vcontextPath>/testv/contextPath>vtempDirectory>${project.build.directory}/workv/tempDirectory>vdefaultsDescriptor>src/main/resources/webdefault.xmlv/defaultsDescriptor>voverrideDescriptor>src/main/resources/override-web.xmlv/overrideDescriptor>v/webAppConfig>-->v!—容器的配置-->vjettyConfig>/my/special/jetty.xmlv/jettyConfig>vconnectors>vconnectorimplementation="org.mortbay.jetty.nio.SelectChannelConnector">vport>9090v/port>vmaxIdleTime>60000v/maxIdleTime></connector></connectors>vuserRealms>vuserRealmimplementation="org.mortbay.jetty.security.HashUserRealm"><name>TestRealm</name><config>etc/perties</config></userRealm></userRealms>vrequestLogimplementation="org.mortbay.jetty.NCSARequestLog"><filename>target/yyyy_mm_dd.request.logv/filename>vretainDays>90v/retainDays>vappend>truev/append>vextended>falsev/extended>vlogTimeZone>GMTv/logTimeZone>v/requestLog>v/configuration>v/plugin>v/plugins>v/project>jetty:run的配置run目标允许你把你未打包的web应用部署到Jetty.它包含在你的pom.xml文件的一部分元素里。下面额外的配置参数都是可用到的:classesDirectory这是你的web应用编译的classes存放的路径。你很少需要设置这个参数,其实可以在你的pom.xml用vbuildxoutputDirectory>替代它。webAppSourceDireCtOry默认设置在${basedir}/src/main/webapp下。如果你的源文件夹结构跟左边不同,就可以设置这个参数。webXml默认设置在${maven.war.webxml}或者${basedir}/src/main/webapp/WEB-INF/web.xml,无论哪个文件都不是空的。如果觉得前两者都不合适,就设置它。jettyEnvXml可选。它指向一个jetty-env.xml文件的路径。允许你创建JNDI绑定并满足web.xml中venv-entry>、vresource-env-ref>和vresource-ref>元素中的条件。当然这个文件的使用范围仅仅在你的当前应用和其他应用同时部署时它并没有共享的情况下。(例如使用一个jettyConfig文件)scanTargets可选。周期性的扫描除了插件自动扫描外的文件和文件夹列表。scanTargetPatterns可选。如果你想扫描有一长串的额外文件,通过使用模式匹配表达式制定它们更加方便,它可以用来替代vscanTargets^数的枚举展示。这个参数包含一组vscanTargetPattern>。每一个都是由一个vdirectory>和vineludes〉[或者vexcludes>]参数来指定文件的匹配模式。F面的示例设置了所有这些参数:vproject>vplugins><plugin>vgroupId>org.mortbay.jettyv/groupId>vartifactId>maven-jetty-pluginv/artifactId>vconfiguration>vwebAppSourceDirectory>${basedir}/src/staticfilesv/webAppSourceDirectory>vwebXml>${basedir}/src/over/here/web.xmlv/webXml>vjettyEnvXml>${basedir}/src/over/here/jetty-env.xmlv/jettyEnvXml>vclassesDirectory>${basedir}/somewhere/elsev/classesDirectory><scanTargets>vscanTarget>src/mydirv/scanTarget>vscanTarget>src/myfile.txtv/scanTarget></scanTargets><scanTargetPatterns>vscanTargetPattern>vdirectory>src/other-resourcesv/directory><includes>vinclude>**/*.xmlv/include>vinclude>**/*.propertiesv/include></includes><excludes>vexclude>**/myspecial.xmlv/exclude>vexclude>**/pertiesv/exclude></excludes></scanTargetPattern>v/scanTargetPatterns></configuration></plugin></plugins></project>你也可以查看jetty:runparameterreferenee。配置jetty:run-war这个目标将首先把你的web应用打包成一个war文件,再发布到Jetty。如果你设置扫描间隔为非零,Jetty将观察你的pom.xml和war文件。如果有任何变化,它都将重新打包并部署war。配置参数的详细描述如下:webApp打包后war的路径。默认为${project.build.directory}/${project.build.finalName}.war。如果目标存储空间不足,设置它到你的自定义路径下。详细设置如下:<project>vplugins><plugin>vgroupId>org.mortbay.jettyv/groupId>vartifactId>maven-jetty-pluginv/artifactId><configuration>vwebApp>${basedir}/target/mycustom.warv/webApp></configuration></plugin></plugins></project>你也可以查看jetty:run-warparameterreferenee.配置jetty:run-exploded这个目标首先装配你的web应用到exploded-war文件,再发布到Jetty。如果你设置扫描间隔为非零,jetty将观察你的pom.xml,WEB-INF/lib,WEB-INF/classes和WEB-INF/web.xml的改变。如果有必要,它都将重新打包并部署war。配置参数的详细描述如下:webAppexploded-war的路径。默认在${project.build.directory}/${project.build.finalName},但是能通过设置这个参数,从而覆盖它。详细设置如下:<project><plugins><plugin>vgroupId>org.mortbay.jettyv/groupId>vartifactId>maven-jetty-pluginv/artifactId><configuration>vwebApp>${basedir}/target/myfunkywebappv/webApp></configuration></plugin></plugins></project>你也可以查看jetty:run-explodedparameterreference.设置系统属性你可以为插件的执行操作按name/value成对的方式指定系统属性。请注意,如果发现有系统属性已经设置过(例如从命令行或者JVM本身),则这些配置的属性不会覆盖它们。这个特性在整理命令行和保存一系列的键盘键入操作时是很有用的。譬如,你通常会需要产生Commonslogging:mvn-Dmons.logging.Log=mons.logging.impl.SimpleLogjetty:run使用了systemproperty配置的命令行可以再次更简短的运行mvnjetty:run,看下面的pom.xml:<project><plugins><plugin>vgroupId>org.mortbay.jettyv/groupId>vartifactId>maven-jetty-pluginv/artifactId>vconfiguration>vsystemProperties>vsystemProperty>vname>mons.logging.Logv/name>vvalue>mons.logging.impl.SimpleLogv/value>v/systemProperty>v/systemProperties></configuration></plugin></plugins></project>注意:你可以按<name>或者vkey>的方式指定vsystemProperty>的名称,使用哪个按你的喜好吧。Jetty本身并没有依赖一个特定的日志框架,它使用一个内置的日志记录器来输出标准错误。不管怎样,允许了Jetty和其他日志方法集成,如果在类路径中发现了一个SLF4J日志的实现,它的使用将优先于Jetty内置的日志记录器。其实Jetty的JSP引擎已经包含了一个日志依赖。如果你使用JSP2.0(即你运行的Java虚拟机[JVM]版本<1.5),这个JSP引擎依赖于commons-logging。默认的commons-logging日志记录器在记录信息为INFO及以上级别[DEBUGWARN,ERROR]时,将提供插件使用的jcl04-over-slf4j和simple-slf4j的实现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 楼宇自控系统托管服务合同
- 伺服电机供货协议
- 橡胶制胶工风险识别模拟考核试卷含答案
- 列车长岗前核心能力考核试卷含答案
- 汽车代驾员岗前创新应用考核试卷含答案
- 巡检无人机驾驶员操作安全知识考核试卷含答案
- 熔体镁工安全综合测试考核试卷含答案
- 玻璃制品加工工QC考核试卷含答案
- 高空作业机械操作工冲突解决考核试卷含答案
- 海藻繁育工绩效目标竞赛考核试卷含答案
- 国有六大行《EPI(行测)》考试1000题
- 2026年云南民族大学附属中学西山分校教后勤工作人员招聘(5人)笔试备考试题及答案详解
- 2026年云南云智城市服务有限责任公司生产(工勤)岗人员社会招聘(11人)笔试备考题库及答案详解
- 2026年秋季小学道德与法治四年级上册(新教材)教学计划含教学进度表
- 2026年和田地区和田市工会人员招聘考试参考试题及答案详解
- 新版2026西师大版数学四年级上册全册完整版教案教学设计合集
- 2026-2027学年人教版新教材小学数学六年级上册教学计划及进度表
- 2026人教版四年级数学上册第一单元第9课《求近似数》课件
- 2026秋译林版(三起)六年级上册英语全册分课时专项练习(语法+句型 含答案解析)
- 分散式风力发电项目水资源论证报告书
- 2026年江苏省初级注册安全工程师考试真题及答案
评论
0/150
提交评论