Maven Jetty Plugin 配置指南(三)

配置jetty:run-exploded

   这个目标首先装配你的web应用到exploded-war文件,再发布到Jetty。如果你设置扫描间隔为非零,Jetty将观察你的pom.xml, WEB-INF/lib, WEB-INF/classesWEB-INF/web.xml的改变。如果有必要,它都将重新打包并部署war

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

  • webApp exploded-war 的路径。默认在 ${project.build.directory}/${project.build.finalName} 但是能通过设置这个参数,从而覆盖它。

详细设置如下:

<project>
  ...
  <plugins>
    ...
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <configuration>
          <webApp>${basedir}/target/myfunkywebapp</webApp>
        </configuration>
      </plugin>
  </plugins>
</project>

您也可查看 jetty:run-exploded parameter reference.

 

设置系统属性

  您可以为插件的执行操作按name/value成对的方式指定系统属性。

  请注意,如果发现有系统属性已经设置过(例如从命令行或者JVM本身),则这些配置的属性不会覆盖它们。

  这个特性在整理命令行和保存一系列的键盘键入操作时是很有用的。

  譬如,你通常会需要产生Commons logging:

  mvn -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog jetty:run

 

  使用了systemProperty配置的命令行可以再次更简短的运行mvn jetty:run,看下面的pom.xml

<project>

 ...

 <plugins>

    ...

      <plugin>

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

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

        <configuration>

         ...

         <systemProperties>

            <systemProperty>

              <name>org.apache.commons.logging.Log</name>

               <value>org.apache.commons.logging.impl.SimpleLog</value>

            </systemProperty>

            ...

         </systemProperties>

        </configuration>

      </plugin>

 </plugins>

</project>

注意:你可以按<name>或者<key>的方式指定<systemProperty>的名称,使用哪个按你的喜好吧。

 

日志

  Jetty本身并没有依赖一个特定的日志框架,它使用一个内置的日志记录器来输出标准错误。不管怎样,允许了Jetty和其他日志方法集成,如果在类路径中发现了一个SLF4J日志的实现,它的使用将优先于Jetty内置的日志记录器。

 其实JettyJSP引擎已经包含了一个日志依赖。如果你使用JSP 2.0(即你运行的Java虚拟机[JVM]版本<1.5),这个JSP引擎依赖于commons-logging。默认的commons-logging日志记录器在记录信息为INFO及以上级别[DEBUG,WARN,ERROR]时,将提供插件使用的jcl04-over-slf4jsimple-slf4j的实现。

 您可以忽略这一点,按照下列步骤提供自己的commons-logging

1. 使用插件中<dependencies>增加一个commons-logging和一个commons-logging的实现到插件类路径(log4j)。请注意,如果您想把Jetty 容器的日志也将发送到这个记录器,你还应该加上slf4j-jcl这个用于桥接的jar包:

<plugin>

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

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

        <version>6.0-SNAPSHOT</version>

      <configuration>

       <scanIntervalSeconds>5</scanIntervalSeconds>

    </configuration>

     <dependencies>

    <dependency>

          <groupId>commons-logging</groupId>

          <artifactId>commons-logging</artifactId>

          <version>1.1</version>

          <type>jar</type>

     </dependency>

     <dependency>

          <groupId>org.slf4j</groupId>

          <artifactId>slf4j-jcl</artifactId>

          <version>1.0.1</version>

          <type>jar</type>

      </dependency>

      <dependency>

          <groupId>log4j</groupId>

          <artifactId>log4j</artifactId>

          <version>1.2.13</version>

          <type>jar</type>

      </dependency>

   </dependencies>

      </plugin>

   2.用-Dslf4j=false系统属性运行插件:

    mvn -Dslf4j=false jetty:run

     注意如果你使用的是log4j,你将需要告诉log4j你配置文件的位置。譬如:

     mvn -Dslf4j=false -Dlog4j.configuration=file:./target/classes/log4j.properties jetty:run

  

   如果您使用的是JSP2.1 (即你运行的Java虚拟机[JVM]版本>=1.5 ),那太好了,因为这个JSP已经没有什么特别的日志依赖。

 

使用Logback-Classic作为JSP引擎的日志实现

<project>
... 
      <plugin> 
        <groupId>org.mortbay.jetty</groupId> 
        <artifactId>maven-jetty-plugin</artifactId> 
        <configuration> 
          <systemProperties> 
            <systemProperty> 
              <name>logback.configurationFile</name> 
              <value>./src/etc/logback.xml</value> 
            </systemProperty> 
          </systemProperties> 
        </configuration> 
        <dependencies>
          <dependency> 
            <groupId>ch.qos.logback</groupId> 
            <artifactId>logback-classic</artifactId> 
            <version>0.9.15</version> 
          </dependency> 
        </dependencies> 
      </plugin>
...
<project>
 
 

如何在JDK1.5上使用JSP2.0

   Jetty maven plugin在JDK1.5中默认加载JSP2.1类库。但是有时候您需要测试运行在JSP2.0上的web应用(因您正运行在老的JSP和Servlet引擎上,如tomcat 5.5或者 weblogic 9.x)
    详细配置如下:

<plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.14</version>
<dependencies>
                    <dependency>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jsp-api-2.0</artifactId>
                        <version>6.1.14</version>

                    </dependency>
                    <dependency>
                        <groupId>tomcat</groupId>
                        <artifactId>jasper-compiler-jdt</artifactId>
                        <version>5.5.15</version>
                    </dependency>
                    <dependency>
                        <groupId>tomcat</groupId>
                        <artifactId>jasper-compiler</artifactId>
                        <version>5.5.15</version>
                    </dependency>
                    <dependency>
                        <groupId>tomcat</groupId>
                        <artifactId>jasper-runtime</artifactId>
                        <version>5.5.15</version>
                    </dependency>
                    <dependency>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jsp-2.1</artifactId>
                        <version>6.1.14</version>
                        <scope>provided</scope>
                        <exclusions>
                            <exclusion>
                                <groupId>org.mortbay.jetty</groupId>
                                <artifactId>jsp-api-2.1</artifactId>
                            </exclusion>
                            <exclusion>
                                <groupId>org.mortbay.jetty</groupId>
                                <artifactId>start</artifactId>
                            </exclusion>
                            <exclusion>
                                <groupId>org.mortbay.jetty</groupId>
                                <artifactId>jetty-annotations</artifactId>
                            </exclusion>
                        </exclusions>
                    </dependency>
</dependencies>
....
</plugin>

猜你喜欢

转载自jdonee.iteye.com/blog/290789
今日推荐