Maven的pom.xml文件配置,热步署(九)下

简介: Maven的pom.xml文件配置,热步署(九)

二. Maven的热步署


我们在用 Tomcat步署工程的时候,需要先将Tomcat 关闭,然后将打包好的 .war工程放置到 Tomcat的webapp下, 再重新启动 Tomcat, 在将war项目放置到tomcat的这段时间内,是无法访问该项目的,会报404的错误。


而 Maven的热步署, 可以很方便的解决这一点, 它可以在 Tomcat的运行期间,不需要将Tomcat关闭,重新启动,就可以直接更新项目,这就是 Maven的热步署。 Maven的步署,可以远程步署,也可以本地步署,两者是一样的。 Maven在步署的时候,需要获取Tomcat的权限,经过Tomcat同意之后,才可以进行步署,而让Tomcat同意,就像Mysql数据库一样,给其正确的用户名和密码就可以了。 (当然,用户还需要具有某些角色)


二.一 在Tomcat 目录下 conf/tomcat-users.xml 下添加角色


如果不是采用Eclipse开发, 需要在Tomcat的安装目录下的conf/tomcat-users.xml 文件里面, 添加角色用户


<!--Maven热步署的权限-->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcatReploy" password="tomcatReploy" roles="manager-gui, manager-script"/>


tomcat默认添加的那些权限,可以给其放开,也可以不管。 最好是不管。 (密码已经改成tomcat了)


<role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>


如果采用的是Eclipse 开发, 需要改变 Servers 项目下面的 tomcat-users.xml 文件


20191104173217440.png


添加的内容,与上面的一致。


输入网址: http://localhost:8027/    (老蝴蝶的端口号是8027)


会出现 Tomcat 的启动页面, 点击 Manager App 按钮


20191104173226355.png


填写刚才 的用户名和密码 tomcatReploy, tomcatReploy

出现这个页面,


20191104173231724.png


即说明配置 用户成功了


如果是本地热步署,就修改本地的 tomcat配置文件, 如果是远程步署,就修改远程服务器上的tomcat的配置文件。


二.二 Maven项目的 pom.xml 文件中 tomcat插件配置


我们仍然采用以前的 ServletMaven 项目,即 Maven创建一个Servlet项目(五) 的项目。


在 pom.xml 的tomcat插件中,进行配置


<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <!--tomcat的插件名, tomcat7-maven-plugin, 用的是tomcat7版本 -->
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
      <!--  <port>8026</port>-->  <!--tomcat的端口号 -->
      <!--<path>/servlet</path>--> <!--tomcat的项目名 -->
      <uriEncoding>UTF-8</uriEncoding> <!-- 防止get 提交时乱码 -->
      <username>tomcatReploy</username>
      <password>tomcatReploy</password>
      <url>http://localhost:8027/manager/text</url>
    </configuration>
</plugin>


多添加一个 username,password,和url 的节点编号, 其中 url 前面部分是 网址, 本地的话就是http://localhost:8027/


如果是远程的话, 就是 远程服务器的ip+端口号, /manager/text 是不能改变 的。


我们将原先的 port 和path 先注释掉。


二.三 测试运行


在本地的 Tomcat 目录下,目前是没有 ServletMaven 这个项目的。


2019110417324915.png


1 .现在,Tomcat服务器还没有启动,


在Maven 项目, 选中 ServletMaven , 进行运行 ,输入命令 tomcat7:deploy (第一次步署,是tomcat7:deploy, 再次步署就是 tomcat7:redeploy)


20191104173256832.png


控制台打印错误


20191104173304520.png


具体信息是:


[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project ServletMaven: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1]


说 Tomcat 未连接, 先要启动Tomcat


2 .在 Tomcat安装路径/bin/startup.bat 命令,启动服务器后,

再次执行刚才的命令: tomcat&:deploy

控制台打印输出:


20191104173311358.png


Maven 启动是正确的。


在Tomcat 安装目录下 webapps 也出现了 ServletMaven 项目和及对应的 .war包


20191104173317364.png


说明安装到 Tomcat上了。


访问路径: http://localhost:8027/ServletMaven/hello

展示了回显信息


20191104173326485.png


这个时候,重新修改 HelloServlet.java 的内容

将回显信息改成


@Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String message="你好啊,两个蝴蝶飞";
    req.setAttribute("message",message);
    req.getRequestDispatcher("/index.jsp").forward(req,resp);
  }


这个时候,重新运行 ServletMaven 项目,选择 Maven build … 输入命令: clean tomcat7:redeploy


2019110417333354.png


控制台没有报错, 前台刷新页面 :


20191104173338646.png

重新步署成功, 就不需要再 关闭Tomcat, 重新放置到Tomcat, 再运行Tomcat了。


二.四 将以前的 port和 path 重新添加


<plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <!--tomcat的插件名, tomcat7-maven-plugin, 用的是tomcat7版本 -->
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8026</port>  <!--tomcat的端口号 -->
          <path>/servlet</path> <!--tomcat的项目名 -->
          <uriEncoding>UTF-8</uriEncoding> <!-- 防止get 提交时乱码 -->
          <username>tomcatReploy</username>
          <password>tomcatReploy</password>
          <url>http://localhost:8027/manager/text</url>
        </configuration>
      </plugin>


这个时候,再 重新运行 clean tomcat7:redeploy 命令


控制台也没有报错


Tomcat的方式运行: http://localhost:8027/ServletMaven/hello


可以显示


Maven 方式的运行 (命令是 tomcat7:redeploy): http://localhost:8026/servlet/hello


是错误的。 说连接被重置


将输入的命令改成 clean tomcat7:run 时


20191104173348471.png


说明是不行的。 这也就是为什么说 远程步署,而不是本地步署的原因。 如果url 是远程的话,将不会有这个问题。


如果将端口去掉, 保留 path, 那么是可以的, 这个时候,生成的名称是 servlet


20191104173355206.png


输入本地的: http://localhost:8027/servlet/hello 是可以的


输入Maven 的( 命令是: tomcat7:run) http://localhost:8080/servlet/hello 是可以的


也就是说, 本地的热步署时,可以添加 path, 不要指定 port


谢谢!!!


相关文章
|
18天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
73 8
|
2月前
|
Java Shell 应用服务中间件
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
这篇文章介绍了如何在Mac系统下配置Java JDK、Maven和Tomcat的环境变量,包括配置文件的选择、解决环境变量在zsh shell中无效的问题、查看和设置系统环境变量的方法,以及JDK和Maven的下载、配置和测试步骤。
1442 1
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
|
2月前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
44 1
|
2月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
110 1
|
2月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
159 5
|
2月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
104 4
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
81 4
|
2月前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
112 4
|
2月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
82 0
|
15天前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
39 3