`
lovefly_zero
  • 浏览: 390041 次
  • 性别: Icon_minigender_1
  • 来自: 株洲
社区版块
存档分类
最新评论

Maven Jetty Plugin 配置指南(二)

阅读更多

如何配置插件

配置公共的run, run-war run-exploded 目标

      不管你执行哪一个Jetty目标,下述的配置参数都是可用的。一般来说它们分为应用于Web容器级别的配置和应用于具体web应用级别的配置:

容器级配置

  • Connectors 可选.一组org.mortbay.jetty.Connector对象,包含jetty的端口监听。如果你不指定任何一个NIOorg.mortbay.jetty.nio.SelectChannelConnector将默认配置一个8080端口。当然,你可以在命令行使用系统参数jetty.port 改变默认端口。例如"mvn -Djetty.port=9999 jetty:run"。另外,您也可以指定许多您想要的连接。  
  • jettyConfig 可选。除插件配置参数外,你也可以指定一个jetty.xml文件的路径。当你有其他的web应用和操作需要部署时,或者一些你无法在插件中配置的jetty对象,你就可以使用到它,
  • scanIntervalSeconds 可选[]在很短的时间间隔内在扫描web应用检查是否有改变,如果发觉有任何改变则自动热部署。默认为0,表示禁用热部署检查。任何一个大于0的数字都将表示启用。
  • systemPropertie 可选。它们允许你在设置一个插件的执行操作时配置系统属性.更多的信息请查阅Setting System Properties.
  • userRealms 可选。一组org.mortbay.jetty.security.UserRealm实现。请注意,它没有一个默认的Realm。如果你在你的web.xml应用了一个Realm,你需要在这里指定一个对应的Rleam
  • requestLog 可选。一个org.mortbay.jetty.RequestLog请求日志接口的实现。比如org.mortbay.jetty.NCSARequestLog就是一个作为NCSA格式的实现。

[注:(美国)国家超级计算技术应用中心 (NCSA) 公用格式是常用的标准日志格式]

手动重载

Jetty 6.2.0pre0版本起,添加了一个新的可用组件,用于控制web应用的重新部署。

配置参数:<reload>[manual|automatic]</reload>

当你设置成手动模式后,web应用不会自动的扫描和重部署。相反,用户可以控制的Web应用时,通过键入回车换行键重载。当设置成自动模式时,将根据scanIntervalSeconds参数的设置不定时的扫描和自动重部署。你也能通过在命令行使用系统参数
-Djetty.reload 配置选择重载的模式。

比如:"mvn -Djetty.reload=manual jetty:run" 将强制手动重载,不管pom.xml文件里如何配置。同理: "mvn -Djetty.reload=automatic -Djetty.scanIntervalSeconds=10 jetty: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方法。下面显示的列子将展示这个元素跟它上面的例子比较是如何配置同样的特性的(当然它们还有更多的特性能让你设置)

<project>

 ...

 <plugins>

    ...

      <plugin>

        <groupId>org.mortbay.jetty</groupId>

        <artifactId>maven-jetty-plugin</artifactId>

        <configuration>

          <scanIntervalSeconds>10</scanIntervalSeconds>

          <!—web应用的配置 -->

          <contextPath>/biggerstrongerbetterfaster</contextPath>

          <tmpDir>target/not/necessary</tmpDir>

          <webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>

          <overrideWebXml>src/main/resources/override-web.xml</overrideWebXml>

          <!—jetty6.1.6rc0, 你能用webAppConfig 元素代替

          <webAppConfig>

            <contextPath>/test</contextPath>

            <tempDirectory>${project.build.directory}/work</tempDirectory>

            <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>

            <overrideDescriptor>src/main/resources/override-web.xml</overrideDescriptor>

          </webAppConfig>

          -->

          <!—容器的配置 -->

          <jettyConfig>/my/special/jetty.xml</jettyConfig>

         <connectors>

            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">

              <port>9090</port>

              <maxIdleTime>60000</maxIdleTime>

            </connector>

          </connectors>

          <userRealms>

            <userRealm implementation="org.mortbay.jetty.security.HashUserRealm">

              <name>Test Realm</name>

              <config>etc/realm.properties</config>

            </userRealm>

          </userRealms>

          <requestLog implementation="org.mortbay.jetty.NCSARequestLog">

            <filename>target/yyyy_mm_dd.request.log</filename>

            <retainDays>90</retainDays>

            <append>true</append>

            <extended>false</extended>

            <logTimeZone>GMT</logTimeZone>

          </requestLog>

        </configuration>

      </plugin>

 </plugins>

</project>

 

 

 

配置 jetty:run 目标

 

 

 

  run目标允许你把你未打包的web应用部署到Jetty.它包含在你的pom.xml文件的一部分元素里。下面额外的配置参数都是可用到的:

  •   classesDirectory 这是你的web应用编译的classes存放的路径。你很少需要设置这个参数,其实可以在你的pom.xml<build><outputDirectory>替代它。
  • webAppSourceDirectory 默认设置在${basedir}/src/main/webapp下。如果你的源文件夹结构跟左边不同,就可以设置这个参数。
  • webXml  默认设置在${maven.war.webxml}或者${basedir}/src/main/webapp/WEB-INF/web.xml,无论哪个文件都不是空的。如果觉得前两者都不合适,就设置它。
  • jettyEnvXml 可选。它指向一个jetty-env.xml文件的路径。允许你创建JNDI绑定并满足web.xml<env-entry><resource-env-ref><resource-ref>元素中的条件。当然这个文件的使用范围仅仅在你的当前应用和其他应用同时部署时它并没有共享的情况下。(例如使用一个jettyConfig文件)    
  • scanTargets 可选。周期性的扫描除了插件自动扫描外的文件和文件夹列表。
  • scanTargetPatterns 可选。如果你想扫描有一长串的额外文件,通过使用模式匹配表达式制定它们更加方便,它可以用来替代 <scanTargets>参数的枚举展示。这个参数包含一组<scanTargetPattern>。每一个都是由一个<directory><includes>[或者<excludes>]参数来指定文件的匹配模式。

下面的示例设置了所有这些参数:

<project>

 ...

 <plugins>

    ...

      <plugin>

        <groupId>org.mortbay.jetty</groupId>

        <artifactId>maven-jetty-plugin</artifactId>

        <configuration>

          <webAppSourceDirectory>${basedir}/src/staticfiles</webAppSourceDirectory>

          <webXml>${basedir}/src/over/here/web.xml</webXml>

          <jettyEnvXml>${basedir}/src/over/here/jetty-env.xml</jettyEnvXml>

          <classesDirectory>${basedir}/somewhere/else</classesDirectory>

          <scanTargets>

            <scanTarget>src/mydir</scanTarget>

            <scanTarget>src/myfile.txt</scanTarget>

          </scanTargets>

          <scanTargetPatterns>

            <scanTargetPattern>

              <directory>src/other-resources</directory>

              <includes>

                <include>**/*.xml</include>

                <include>**/*.properties</include>

              </includes>

              <excludes>

                <exclude>**/myspecial.xml</exclude>

                <exclude>**/myspecial.properties</exclude>

              </excludes>

            </scanTargetPattern>

          </scanTargetPatterns>

        </configuration>

      </plugin>

 </plugins>

</project>

  你也可以查看jetty:run parameter reference

配置jetty:run-war目标

  这个目标将首先把你的web应用打包成一个war文件,再发布到Jetty。如果你设置扫描间隔为非零,Jetty将观察你的pom.xmlwar文件。如果有任何变化,它都将重新打包并部署war

  配置参数的详细描述如下:

  • webApp 打包后war的路径。默认为${project.build.directory}/${project.build.finalName}.war。如果目标存储空间不足,设置它到你的自定义路径下。

详细设置如下:

<project>

 ...

 <plugins>

    ...

      <plugin>

        <groupId>org.mortbay.jetty</groupId>

        <artifactId>maven-jetty-plugin</artifactId>

        <configuration>

          <webApp>${basedir}/target/mycustom.war</webApp>

        </configuration>

      </plugin>

 </plugins>

</project>           

你也可以查看jetty:run-war parameter reference.

分享到:
评论

相关推荐

    maven-jetty-plugin

    在实际使用中,开发者通常会在`pom.xml`文件中添加以下配置来启用Maven Jetty Plugin: ```xml ... &lt;plugin&gt; &lt;groupId&gt;org.mortbay.jetty &lt;artifactId&gt;maven-jetty-plugin 版本号 &lt;!-- 配置项 --&gt; ...

    maven集成jetty所需jar包maven-jetty-plugin,多版本

    要在Maven项目中使用`maven-jetty-plugin`,首先需要在项目的`pom.xml`文件中添加插件的配置。例如: ```xml ... &lt;plugin&gt; &lt;groupId&gt;org.mortbay.jetty &lt;artifactId&gt;maven-jetty-plugin &lt;version&gt;6.1....

    Maven + Jetty Plugin

    "Maven + Jetty Plugin" 是一个用于快速开发和测试Java Web应用程序的组合,它结合了Maven构建工具和Jetty服务器。Maven是一个强大的项目管理工具,它简化了构建、管理和部署Java项目的过程,而Jetty则是一个轻量级...

    maven项目下用 jetty 启动热部署

    通过以上步骤,我们就成功地在Maven项目中配置了Jetty服务器的热部署。这种方式极大地提高了开发效率,使得开发者可以在编写代码的同时实时查看效果,减少了频繁的重启操作。记住,热部署只适用于开发环境,生产环境...

    jetty-maven-plugin-8.1.10.v20130312.zip

    【标题】"jetty-maven-plugin-8.1.10.v20130312.zip" 是一个用于Maven项目的Jetty服务器插件的版本包,它主要用于在开发过程中快速部署和测试Java Web应用程序。Jetty是轻量级、高性能的HTTP服务器和Servlet容器,而...

    maven jetty

    在Maven的pom.xml文件中,我们需要添加Maven Jetty插件的配置。以下是一个基本的配置示例: ```xml ... ... &lt;plugin&gt; &lt;groupId&gt;org.mortbay.jetty &lt;artifactId&gt;maven-jetty-plugin &lt;version&gt;6.1.26...

    maven +jetty 配置web工程

    本篇文章将详细探讨如何利用Maven与Jetty进行配置,以便高效地开发和运行Web工程。 首先,`Maven`是Apache软件基金会开发的项目管理工具,它通过一个统一的构建过程和依赖管理,简化了Java项目的构建、测试和部署。...

    maven-jetty-plugin-6.1.3.jar

    maven-jetty-plugin-6.1.3.jar

    maven-jetty-plugin-6.1.7.jar

    maven-jetty-plugin-6.1.7.jar

    Maven与Jetty

    例如,`maven-jetty-plugin`或`jetty-maven-plugin`允许你在开发阶段直接通过Maven命令运行和调试你的Web应用,而无需进行完整的打包和部署步骤。 要将Jetty集成到Maven项目中,你需要在你的`pom.xml`文件中添加...

    jetty-console-maven-plugin-1.53.zip

    【标题】:“jetty-console-maven-plugin-1.53.zip”是一个与Jetty服务器相关的Maven插件的版本包,版本号为1.53。Jetty是一款轻量级、开源的Java Web服务器和Servlet容器,广泛用于开发、测试和部署Web应用程序。...

    maven-jetty-plugin-6.1.25-sources.jar

    maven-jetty-plugin-6.1.25-sources.jar

    maven-jetty-plugin-6.1.26-sources.jar

    maven-jetty-plugin-6.1.26-sources.jar

    maven-jetty-jspc-plugin-6.1.25-sources.jar

    maven-jetty-jspc-plugin-6.1.25-sources.jar

    maven 创建web project 配置jetty运行

    本教程将探讨如何使用Maven创建一个Web项目,并配置Jetty服务器进行运行。这涉及到的两个核心文件是`pom.xml`(Project Object Model)和`web.xml`(Web应用部署描述符),以及一个额外的`webdefault.xml`,它定义了...

    tomcat-maven-plugin

    maven-tomcat-plugin让maven与tomcat配合得很好。它可以把应用部署到Tomcat服务器,也可以把tomcat作为内嵌服务器启动,就像jetty一样。 使用JPDA启动tomcat的远程调试功能。这样就能与eclipse配合起来,轻松地实现...

    maven-jetty-jspc-plugin-6.1.22-site-component.jar

    maven-jetty-jspc-plugin-6.1.22-site-component.jar

    解决maven projects plugin出现红线问题

    maven projects plugin出现红线怎么办,网上给许多比较蹩脚的方案。经过研究发现一个简洁的方法,一分钟就能搞定。

Global site tag (gtag.js) - Google Analytics