MAVEN配置jetty

MAVEN配置jetty

 

1、在setting.xml文件中添加配置(如果没有配置可能导致jetty热部署不能修改静态文件)

<pluginGroups>

    <!-- pluginGroup

     | Specifies a further group identifier to use for plugin lookup.

    <pluginGroup>com.your.plugins</pluginGroup>

    -->

     <pluginGroup>org.mortbay.jetty</pluginGroup>

  </pluginGroups>

 

2、首先是webdefault.xml要准备好,它是配置Jetty的,这个可以从Jetty的包中找到(jetty-6.1.26.jar\org\mortbay\jetty\webapp\webdefault.xml),并复制到resources下,这里多说一点,默认Jetty运行时是锁定JS/CSS等静态文件的,如果想在Jetty运行时也能修改它们,要在webdefault.xml中修改如下设置: 

<init-param>  

  <param-name>useFileMappedBuffer</param-name>  

  <param-value>false</param-value>  

</init-param>  

 

3、修改pom.xml

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<webXml>src\main\webapp\WEB-INF\web.xml</webXml>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>maven-jetty-plugin</artifactId>
				<version>6.1.10</version>
				<configuration>
					<!-- 在很短的时间间隔内在扫描web应用检查是否有改变,如果发觉有任何改变则自动热部署。默认为0,表示禁用热部署检查。任何一个大于0的数字都将表示启用。 -->
					<scanIntervalSeconds>0</scanIntervalSeconds>
					<webAppConfig>
						<!--jetty插件启动后的访问路径: http://localhost:8080/test-->
						<contextPath>/test</contextPath>
						<tempDirectory>${project.build.directory}/work</tempDirectory>
						<defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
					</webAppConfig>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>javax.servlet</groupId>
						<artifactId>servlet-api</artifactId>
						<version>3.0-alpha-1</version>
						<type>jar</type>
					</dependency>
					<dependency>
						<groupId>org.apache.velocity</groupId>
						<artifactId>velocity</artifactId>
						<version>1.7</version>
					</dependency>
					<dependency>
						<groupId>org.apache.velocity</groupId>
						<artifactId>velocity-tools</artifactId>
						<version>2.0</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
		<finalName>projectname</finalName>
	</build>
</project>

 

 

4、log4j.properties

log4j.rootCategory=INFO, stdout , R  

   

log4j.appender.stdout=org.apache.log4j.ConsoleAppender  

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  

log4j.appender.stdout.layout.ConversionPattern=[WO] %p [%t] %C.%M(%L) | %m%n  

   

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender  

log4j.appender.R.DatePattern='.'yyyy-MM-dd   

log4j.appender.R.File=D:/notify-subscription.log   

log4j.appender.R.layout=org.apache.log4j.PatternLayout  

log4j.appender.R.layout.ConversionPattern=%d-[WO] %p %t %c - %m%n  

log4j.appender.R.Append=true

 

5、启动

jetty:run 启动jetty容器

 

jetty:run -Djetty.port=9999  启动jetty容器并且制定容器端口

 

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

 

 

经常修改文件会出现CPU飙升的情况,是因为jetty在reload

所以还需要配置一个jrebel破解版,直接对类进行修改,避免reload

下载jrebel.jar 破解版

然后拷贝到 %REBEL_HOME% 目录并添加该环境变量,进入目录运行 java -jar %REBEL_HOME%/jrebel.jar 生成根据本机 JVM 环境生成的 jrebel-bootstrap.jar 运行文件。

然后添加 MAVEN 运行环境变量:MAVEN_OPTS 值为 -noverify -Xbootclasspath/p:%REBEL_HOME%/jrebel-bootstrap.jar;%REBEL_HOME%/jrebel.jar 然后再配置目标项目的 pom.xml,关闭 maven 的 jetty 插件本身的 reload 配置: 

<plugin>

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

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

<configuration>

<scanIntervalSeconds>0</scanIntervalSeconds>

</configuration>

</plugin>

在pom.xml 中加入这个依赖:

<dependency>  

<groupId>org.apache.velocity</groupId>  

<artifactId>velocity</artifactId>  

<version>1.7</version>  

</dependency>  

<dependency>  

<groupId>org.apache.velocity</groupId>  

<artifactId>velocity-tools</artifactId>  

<version>2.0</version>  

</dependency>

启动:

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

 

猜你喜欢

转载自crabdave.iteye.com/blog/2247803