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

简介: 插件和依赖的区别:依赖:运行时开发时都需要用到的jar包,比如项目中需要一个Json的jar包,就要添加一个依赖,这个依赖在项目运行时也需要,因此在项目打包时需要把这些依赖也打包进项目里;插件:在项目开的发时需要,但是在项目运行后就不再需要,因此在项目开发完成后不需要把插件打包进项目中,例如接下来演示的Tomcat插件就是用来部署Web项目的,部署成功

插件和依赖的区别:


依赖:运行时开发时都需要用到的jar包,比如项目中需要一个Json的jar包,就要添加一个依赖,这个依赖在项目运行时也需要,因此在项目打包时需要把这些依赖也打包进项目里;


插件:在项目开的发时需要,但是在项目运行后就不再需要,因此在项目开发完成后不需要把插件打包进项目中,例如接下来演示的Tomcat插件就是用来部署Web项目的,部署成功

使用Maven集成Tomcat插件的原因

常规模式使用Tomcat服务器需要本地有tomcat服务器,且如果需要适配不同版本的jdk或servlet等还需要在本地安装不同版本的Tomcat,如果使用Maven集成Tomcat则只需要在pom.xml进行配置即可使用(可用于解决:Tomcat与Servlet、JSP、JDK的版本适配问题)

项目如果不是使用远程热部署的话,每次更改后都要自行将war包拷贝到服务器的wepapps下,非常不方便

使用Maven集成Tomcat插件的作用

1、解决没有对应版本Tomcat服务器的问题(本地运行)

<!-- 本地环境使用 -->
<plugin>   
    <groupId>org.apache.tomcat.maven</groupId>   
    <artifactId>tomcat7-maven-plugin</artifactId>   
    <version>2.1</version>   
    <configuration>      
      <hostName>localhost</hostName>    <!--   默认为: localhost -->  
      <port>8080</port>    <!-- 启动端口 Default:8080 --> 
      <path>/api</path>    <!-- 访问应用路,默认为:/${project.artifactId}-->  
      <uriEncoding>UTF-8</uriEncoding>
    </configuration>
</plugin>

使用此方法可能访问servlet可能会出现500的情况,这时需要解决jar包冲突问题


2、远程热部署项目(远程部署)

在服务器的tomcat配置文件里为maven配置一个赋予权限的账号,就可以在本地使用maven命令把项目部署到正在运行的服务器的tomcat下面,即实现远程部署

操作方法
<plugins>
    <!-- tomcat插件控制 -->
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <!-- 对应运行的tomcat manager的接口-->
            <url>http://120.25.254.88:80/manager/text</url>
            <server>tomcat9</server>
            <!-- tomcat-user.xml 的 username -->
            <username>root</username>
            <!-- tomcat-user,xml 的 password -->
            <password>123456</password>
            <!-- web项目的项目名称-->
            <path>/${project.artifactId}</path>
            <uriEncoding>UTF-8</uriEncoding>
            <update>true</update>
        </configuration>
    </plugin>
    <!-- maven插件控制 -->
    <!-- 保证源程序与部署环境使用相同版本的jdk -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
     </plugin> 
</plugins>

主要看一下configuration(Tomcat的配置信息)中各项代表的意义。


url


Tomcat7——ip:port/manager/text

Tomcat6——ip:port/manager/html

此处输入的url其实就是Tomcat首页中的Manager App,如下:

405ab68ea59f4047b30aac1d930c07fb.png

这里我们还要首先确保我们自己能够访问这个路径,浏览器会让你输入用户名和密码

746b7c55679b47b199e1850ce6f6e775.png

输入的用户名密码正确且有权限即可访问到如下内容

00ddd62899594dbfa0c3cb6d2afc247e.png

而此处的账号密码需要在tomcat的conf目录下的tomcat.xml文件中进行配置,配置方式如下:

<role rolename="manager-gui"/> 
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user password="123456" username="root"
roles="manager-gui,manager-script,manager-jmx,manager-status" />

其中username即设置的用户名,password即设置的密码,访问该网站和下面配置文件中的<username>和<password>都与此处设置的相对应


server


指定tomcat名称,此处填的只是代表一个名字,而并不是tomcat的版本


tomcat的版本在此处<artifactId>tomcat7-maven-plugin</artifactId>,因为并没有找到7以上的版本,不过已验证该插件可以在tomcat9服务器上部署项目


且无论监听的服务器是tomcat7、8还是9,都是使用"mvn tomcat7:deploy"或"mvn tomcat7:redeploy"命令才执行部署


path


用于设置项目的访问路径


/代表ip+端口,${project.artifactId}表示项目名


uriEncoding


按UTF-8进行编码,解决了中文参数乱码问题


update


如果路径在tomcat服务器中已存在并且使用mvn tomcat7:deploy命令的话,上面的配置中一定要配置true,不然会报错

Maven运行tomcat的相关命令

install命令会编译出classs文件、jar文件和项目war包


deploy在install生成war包之后执行,将项目部署到目标tomcat


部署之前应先启动tomcat服务器,否则报Connection refused错误错误信息:[ERROR]Failed to execute goal org.apache.tomcat.maven: tomcat7-maven-plugin: 2.0- SNAPSHOT: deploy (default-cli) on project helloworld: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1]

首次部署使用"mvn tomcat7:deploy",更新项目时使用"mvn tomcat7:redeploy"

tomcat7:deploy  --部署一个web war包
tomcat7:reload  --重新加载web war包
tomcat7:start  --启动tomcat
tomcat7:stop  --停止tomcat
tomcat7:undeploy  --停止一个war包
tomcat7:run  启动嵌入式tomcat ,并运行当前项目(本地运行使用)

相关文章
|
Java Maven 微服务
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的 maven 依赖
在项目中使用Swagger2工具时,需导入Maven依赖。尽管官方最高版本为2.8.0,但其展示效果不够理想且稳定性欠佳。实际开发中常用2.2.2版本,因其稳定且界面友好。以下是围绕2.2.2版本的Maven依赖配置,包括`springfox-swagger2`和`springfox-swagger-ui`两个模块。
636 0
|
Java 应用服务中间件 API
Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)
本文详细介绍了Servlet的开发流程,包括在IntelliJ IDEA中添加Tomcat依赖的详细教程。通过上述步骤,开发者可以快速搭建并运行一个基本的Servlet应用,理解并掌握Servlet的开发流程对于Java Web开发至关重要。希望本文能够帮助开发者顺利进行Servlet开发,提高工作效率。
1696 78
|
Java 应用服务中间件
多项目分接口:在同一Tomcat下使用不同的端口号访问不同的项目。
总而言之,要在同一Tomcat服务器下使用不同端口访问不同项目,关键是通过对server.xml文件的配置创建多个 `<Service>`实例和相应的虚拟主机。这种方法既实现了项目隔离,也有助于优化资源利用率。通过遵循本文的详细说明,很容易地就能满足需求实现多项目分接口。
503 38
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
589 41
|
10月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
513 0
|
Java 应用服务中间件 Linux
Tomcat运行日志字符错乱/项目启动时控制台日志乱码问题
总结: 通过以上几种方法,概括如下:指定编码格式、设置JVM的文件编码、修改控制台输出编码、修正JSP页面编码和设置过滤器。遵循这些步骤,你可以依次排查和解决Tomcat运行日志字符错乱及项目启动时控制台日志乱码问题。希望这些建议能对你的问题提供有效的解决方案。
2271 16
|
网络协议 Java 应用服务中间件
框架源码私享笔记(01)Tomcat核心架构功能 | 配置详解
本文首先分享了《活出意义来》一书序言中的感悟,强调成功如同幸福,不是刻意追求就能得到,而是全心投入时的副产品。接着探讨了Tomcat的核心功能与架构解析,包括网络连接器(Connector)和Servlet容器(Container),并介绍了其处理HTTP请求的工作流程。文章还详细解释了Tomcat的server.xml配置文件,涵盖了从顶级容器Server到子组件Connector、Engine、Host、Context等的配置参数及作用,帮助读者理解Tomcat的内部机制和配置方法。
|
12月前
|
Java 应用服务中间件 Linux
在Java 12环境中配置和部署Apache Tomcat的步骤。
这段部署Tomcat的冒险旅程充满技术挑战,但同时也像游戏一样充满乐趣。它需要你提前准备,仔细执行,并随时准备解决意外情况。成功后,你就可以在这匹强壮的网络野马上,带着你的Java应用,冲向Web开发的璀璨星空。
322 56
|
9月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1640 5

推荐镜像

更多