maven常用插件解析之Tomcat插件热部署

Maven插件实现热部署,支持Tomcat和Jetty插件 Maven是一个非常优秀的工具,在Maven出现之前,一个项目如果业务很多,很复杂,整个项目就非常庞大。这会造成如下几个问题: 1、项目后期维护成本大,新加一个需求需要全盘考虑会不会影响其他的业务逻辑; 2、开发效率低下,改动一个Java文件需要重启Tomcat (Jetty等)服务器 ,重新编译整个项目,编译会花去一定的时间,程序员开发的时间会大大减少; 3、所有的业务代码和非业务代码紧密 阅读详情

1、简介

    我们使用maven做一些日常的工作开发的时候,无非是想利用这个工具带来的一些便利。比如它带来的依赖管理,方便我们打包和部署运行。这里几个常见的插件就是和这些工程中常用的步骤相关。




2、tomcat7-maven-plugin

    这个插件可以是代替本地Tomcat容器的、而且经过很多项目的验证、maven的Tomcat插件启动速度比本地Tomcat快。也可以用来作为热部署使用。
<build>
<!-- 配置插件 -->
		<plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<configuration>
					<port>8080</port>
					<path>/</path>
				</configuration>
			</plugin>
		</plugins>
</build>



2.1、常用命令





2.2、热部署:

       前提工作
       我们需要实现热部署,自然就需要通过maven操作tomcat,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限.
在tomcat的安装目录下,修改conf / tomcat-user.xml文件,在<tomcat-users> 节点下面增加如下配置


<role rolename="manager-gui"/>

<rolerolename="manager-script" />

<user username="tomcat" password="tomcat"roles="manager-gui, manager-script"/>


修改pom.xml文件
<build>
		<plugins>
			<!-- 配置Tomcat插件 -->
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<configuration>
					<port>8081</port>
					<path>/</path>
					<url>http://192.168.25.136:8080/manager/text</url>
					<username>tomcat</username>
					<password>tomcat</password>
				</configuration>		
			</plugin>
		</plugins>
</build>




3、maven-compile-plugin

    这个插件就如同名字所显示的这样,用来编译源代码的。最开始碰到这个插件是在于有的时候我们下载了一些工程需要编译的时候,比如我们输入命令:mvn install ,但是系统编译的时候报错了,错误的信息如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project springJMS: Compilation failure: Compilation failure:
[ERROR] /home/frank/programcode/SpringJMSSample/src/main/java/huangbowen/net/jms/MessageSender.java:[6,1] error: annotations are not supported in -source 1.3
[ERROR] 
[ERROR] (use -source 5 or higher to enable annotations)
[ERROR] /home/frank/programcode/SpringJMSSample/src/main/java/net/EmbedBrokerApp.java:[5,7] error: static import declarations are not supported in -source 1.3
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
    
     从错误显示的信息我们就可以看出,这是因为编译的时候是默认用的javac 1.3版本的,太老了不支持代码里的特性。为了修改这个问题,我们需要设置编译器的版本。解决这个问题的办法也比较简单,就是直接在后面的插件部分增加如下的插件,比如如下部分,将编译器的版本设定为1.6:


在pom.xml添加
<build>
	  <plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>2.3.2</version>
			<configuration>
				<source>1.7</source>
				<target>1.7</target>
			</configuration>
		</plugin>
	  </plugins>
	</build>


4、maven-resources-plugin

maven-resources-plugin插件的copy-resources目标能实现工程资源文件的拷贝,如:
<build>
<resources>
			<!--表示把java目录下的有关xml文件,properties文件编译/打包的时候放在resource目录下-->
			<resource>
				<directory>${basedir}/src/main/java</directory>
				<includes>
					<include>**/*.config</include>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>${basedir}/src/main/resources</directory>
			</resource>
		</resources>
</build>









【Labview与SQL Server互联(labview可以引用数据库)】 Labview与SQL Server互联 阅读详情

相关推荐

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版

(Cascade extended state observer)级联ADRC的simulink仿真和程序---送给中国研究学者的精华版

weixin_44312889的博客 3786

maven插件 tomcat7-maven-plugin 的使用

1、Tomcat7的用户及权限配置要实现热部署,自然就需要通过maven操作tomcat,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限。在tomcat的安装目录下,修改conf / tomcat-user.xml文件,在&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;tomcat-users&amp;amp;amp;amp;amp;amp;amp;am

猎人在吃肉 5万+

LPDDR5X内存技术解析:性能提升与优化策略

内存技术在现代计算系统中扮演着核心角色,其性能直接影响整体系统效率。LPDDR5X作为JEDEC最新标准,通过提升数据传输率至8533Mbps、优化能效比15%以上,并扩展突发长度至32字节,显著提升了移动设备的处理能力。这些改进特别适用于5G通信、AI加速(如昇腾芯片)及8K视频处理等高带宽需求场景。技术原理上,LPDDR5X引入了动态电压频率调整(DVFS)和可编程突发长度等创新机制,有效降低了实际应用中的延迟。在工程实践中,合理的PCB布局和信号完整性验证是确保高速稳定运行的关键。随着AI和8K应用的

weixin_29190169的博客 402

Maven插件tomcat7-maver-plugin

一.toccat-maven-plugin的作用 用来快速部署并启动Maven项目 二.为什么使用tomcat7-maven-plugin (1).tomcat7-maven-plugin是maven中集成tomcat容器的一个插件,使用这个插件启动项目有很多好处。 (2).相比于springboot自启动的tomcat容器,他可以排除每个项目都自带一套tomcat容器的尴尬,这样便于上线以后单容器启动多项目管理。 (3).相比于自己启动一个tomcat容器,他可以很方便的编译启动一个项目,省去

weixin_45856470的博客 4634

制作Ubuntu22.04启动盘

现在越来越多程序代码都需要运行在linux环境下,运行这些代码的前提是安装一个稳定的linux操作系统。本文选择Ubuntu 22.04去制作系统启动盘。本文主要对ubuntu22.04的启动盘制作过程进行了详细的说明,希望能帮助到有需要的朋友。

lyx_ok的博客 1万+

esp32移植canopen协议栈(二)

本文续接上一篇文章,之前我们已经搭建好了esp32的开发环境,以及初始工程。接下来我们开始实现can驱动相关,以及使用c++封装can接口。本文使用esp32实现c++实现can驱动层的封装。下一步移植canopen!!!嘻嘻。

qq_50267418的博客 1909

【Tomcat】tomcat9使用tomcat7-maven-plugin插件配置及其他一系列配置问题解决

【Tomcat】tomcat9使用tomcat7-maven-plugin配置

m0_56249083的博客 1万+

基于STM32的智能火灾报警系统设计:多传感器融合与远程控制实现

本文详细介绍基于STM32单片机的智能火灾报警系统设计,采用多传感器融合技术(烟雾、温度、火焰检测)实现高精度火灾识别。系统集成远程控制与手机APP监控,通过加权决策算法降低误报率,提供多级响应策略,确保火灾预警的准确性与可靠性。

u5v6w7的博客 1104

maven插件介绍之tomcat7-maven-plugin

tomcat7-maven-plugin插件的pom.xml依赖为:   &lt;dependency&gt; &lt;groupId&gt;org.apache.tomcat.maven&lt;/groupId&gt; &lt;artifactId&gt;tomcat7-maven-plugin&lt;/artifactId&gt; &lt;version&gt;2...

起风了 6688

RK3588开发笔记-Buildroot编译Qt5WebEngine-5.15.10

Rockchip RK3588是一款强大的多核处理器,广泛应用于边缘计算、人工智能、嵌入式系统等领域。为了在RK3588上运行自定义的Linux系统,并使用Qt5WebEngine进行Web内容渲染,Buildroot是一个非常合适的工具。本文将详细介绍如何使用Buildroot编译并配置Qt5WebEngine-5.15.10。Qt5WebEngine是Qt框架中的一个模块,它提供了一个功能强大的Web浏览器引擎,允许开发者在Qt应用程序中嵌入和显示现代网页内容。

flypig has a dream! 1159

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++小学组:带解析)(7月4日试卷一)【文末附答案和解析】

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++小学组:带解析)(7月4日试卷一)【文末附答案和解析】

王老师青少年编程 1740

IDEA使用

IDEA配置同一个应用启动多个实例: 1.run–>Edit Configurations 或者如下: 2.勾选如下: 3.通过修改配置文件的启动端口,启动多个实例。

zengjyxxz的博客 188

YOLOv11改进策略【Neck】| SEAM:分离和增强注意模块,解决复杂场景下的小目标遮挡问题

本文记录的是利用 SEAM 模块优化 YOLOv11 的目标检测网络模型。的设计出发点在于解决复杂场景下的人脸遮挡问题,相当于是小目标被其他物体部分遮挡时,传统方法因特征缺失导致检测精度下降的问题。该模块通过增强未遮挡区域的特征响应并补偿被遮挡区域的信息损失,提升模型对遮挡小目标的检测能力。YOLO-FaceV2: A Scale and Occlusion Aware Face DetectorSEAM模块(Separated and Enhancement Attention Module)的设计出发点

Limiiiing的博客 2281

VSCode中开发JavaWeb项目(Maven+Tomcat+热部署)

在VSCode中开发JavaWeb项目,包括Maven构建、Community Server Connectors插件部署Tomcat、Deploy热部署等。

weixin_49666086的博客 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

idea使用maven提供的tomcat插件热部署

Tomcat热部署 1、Tomcat的配置 我们需要实现热部署,自然就需要通过maven操作tomcat,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限。 输入:ip:端口号/manager 在tomcat的安装目录下,修改conf / tomcat-user.xml文件,在 节点下面增加如下配置: <role rolename="manager-gui" /> <role rolename="manager-script" /> &lt

Lewis的博客 1352

vscode 热部署/热加载/hot deploy/redply maven+tomcat

vscode 热部署/热加载/hot deploy/redply maven+tomcat目的折腾过程java extention, maven 等tomcat插件——准备失败方案tomcat maven plugin——失败正确方案修改maven compile的输出目录 ——成功前端页面的热部署jar文件tomcat虚拟目录大功告成 目的 自从用过vscode,再也无法忍受eclipse的龟速...

superium的博客 1万+

Maven集成Tomcat插件+远程热部署项目

插件和依赖的区别: 依赖:运行时开发时都需要用到的jar包,比如项目中需要一个Json的jar包,就要添加一个依赖,这个依赖在项目运行时也需要,因此在项目打包时需要把这些依赖也打包进项目里; 插件:在项目开的发时需要,但是在项目运行后就不再需要,因此在项目开发完成后不需要把插件打包进项目中,例如接下来演示的Tomcat插件就是用来部署Web项目的,部署成功 使用Maven集成Tomcat插件的原因 常规模式使用Tomcat服务器需要本地有tomcat服务器,且如果需要适配不同版本的jdk或servlet.

qq_25046827的博客 1009

maven 项目使用tomcat8插件进行热部署

首先下载tomcat修改tomcat下conf目录下tomcat-users.xml添加一行&lt;user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/&gt;然后在创建的pom文件中引入tomcat插件 &lt;pluginRepositories&gt; &lt;pluginRepositor...

w281w2g的博客 1万+

使用Tomcat插件实现WEB项目热部署

使用Tomcat插件实现WEB项目热部署 Tomcat热部署可以通过网页操作进行,也可以通过指定插件进行。本文介绍的是通过使用tomcat7-maven-plugin将WEB项目热部署到指定服务器的Tomcat中,并对期间遇到的问题进行分析和记录。 文章目录使用Tomcat插件实现WEB项目热部署何为Tomcat热部署配置tomcat-users.xml文件配置项目pom文件Tomcat热部署原理...

星悬_月的博客 1330

idea maven tomcat 热部署

idea maven tomcat 热部署背景技能列表在 maven 中使用 tomcat 的插件进行部署验证结果 背景 上一篇 tomcat + nginx 部署各类工程的几种方式 中提到 只用 tomcat 自带的 manager 工程进行外网部署管理。后续上网发现,还有更简洁、高效的方式可以部署。即这篇文章,在 maven 中使用 tomcat 的插件进行部署。这样就可以不用登录 manag...

wsl9420的博客 1399

【04】将Maven项目热部署到远程tomcat服务器上

1.虽然现在Maven中央仓库中支持的tomcat插件只支持到tomcat7这个版本,但是可以利用这个插件对Web项目进行热部署,热部署到远程服务器的tomcat服务器上,远程服务器上的tomcat版本可以是更高的版本,比如说tomcat8、9、10或更高的版本中,以此来突破Maven仓库tomcat7插件版本的局限性。

青风百草 1720

基于maven的javaweb项目如何使用maven-tomcat插件实现tomcat热部署

原本当我们想运行一个web项目时我们在本地开发环境采用的方式将web容器tomcat加入到我们的ide中,然后将项目add到tomcat中启动tomcat进行访问,当我们想把项目发布到远端的测试服务器上时我们采用的方式是将项目打包然后拷贝到远端测试服务器的tomcat下面,然后启动tomcat,如果遇到错误还要重新打包拷贝,这些都能实现项目的部署,只是比较不方便而已。今天说一下使用m...

Iamn13的博客 909

Maven项目下进行Tomcat热部署教程

Maven项目下进行Tomcat热部署教程

ToFate_的博客 4677

图文详解|Maven插件一键热部署项目至tomcat

热部署是什么 热部署就是在修改了jsp页面及java类的情况下不需重启服务器即可让修改的内容生效,当然,如果修改了配置文件还是需要进行重启的。 为什么要用热部署 在开发时,如果我们每修改一次类文件或者页面就需要对项目进行重启,也许你测试的时候只用改一个小地方只不过花费几秒钟,而重启tomcat却需要花费数十秒,一次两次,多次之后这其中节约的时间就不是一点点了。 具统计,热部署能节约超过

CJD的博客 1340

tomcat和maven实现热部署项目到服务器

背景     众所周知,我们平时将JavaEE项目开发完后,需要将项目部署到服务器的tomcat上。常用的部署方式是将项目打包成war包放到tomcat的webapps下,然后重启tomcat,然后通过ip地址+端口号访问。这样部署本身是没问题的,但问题纠结在于,如果还是在生产环境下的话,需要频繁的更改个优化项目,那么就需要频繁的将项目打war包,替换web...

Duktig的博客 845
上一篇: springmvc整合freemarker教程
下一篇: 面向服务的体系架构(SOA)
AndyChen9988
博客等级 码龄11年 276粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值