Maven 中 Jetty 插件配置

配置虚拟路径和热部署

<plugin>
	<!-- 定位 -->
	<groupId>org.eclipse.jetty</groupId>
	<artifactId>jetty-maven-plugin</artifactId>
	<version>9.3.7.v20160115</version>
	<configuration>
		<!-- http 端口号 -->
		<httpConnector>
			<port>8081</port>
		</httpConnector>
		<!-- 工程名 -->
		<webApp>
			<contextPath>/${project.artifactId}</contextPath>
		</webApp>
		<!-- 额外监听目录 -->
		<contextHandlers>
			<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
				<!--设置虚拟路径 -->
				<contextPath>/image</contextPath>
				<resourceBase>F:\Process\UploadFile</resourceBase>
			</contextHandler>
		</contextHandlers>
		<encoding>UTF-8</encoding>
		<!-- 每隔10秒自动扫描周期——热部署 -->
		<scanIntervalSeconds>10</scanIntervalSeconds>
	</configuration>
</plugin>

  如果不设置 <scanIntervalSeconds> 标签,jetty 默认情况不会自动扫描重启,执行最新代码,因此每次修改代码需要手动重启,而配置之后会自动加载修改后的代码,专业术语叫做 —— 热部署。

解决静态文件锁定问题

  官方为了保证静态文件的稳定性,不允许在 jetty 启动之后修改静态文件 (如 html、css、js)。

  1. 找到本地 Maven 库的路径,找到 org\eclipse\jetty\,在压缩包中打开 jetty-webapp.jar
  2. 从压缩包中把 webdefault.xml 拖出来,打开找到下面代码的标签 (大概在 170 来行),将 true 改成 false ,再将这个文件拖回压缩包中。

<init-param>
	<param-name>useFileMappedBuffer</param-name>
	<param-value>true</param-value>
</init-param>

猜你喜欢

转载自blog.csdn.net/qq_40395874/article/details/114394882