zoukankan      html  css  js  c++  java
  • maven实现多服务器(tomcat)部署

    以我为例,我在本地里有装tomcat,并且我也有自己的ECS服务器(也装有tomcat)。

    1. 配置各个端tomcat的tomcat-users.xml文件,添加用户和权限,并赐予用户某些权限,各个端的tomcat可以用户和密码要是一样的,用户的权限是必须包含manager-gui,manager-script

        

      <role rolename="manager-gui"/>
      <role rolename="manager"/>
      <role rolename="manager-script"/>
      <!-- username 用户名,password 密码,roles 权限  -->
      <user username="admins" password="123456" roles="manager-gui,manager-script"/>
    View Code

         配置完后,启动tomcat,访问:http://ip:port/manager 和http://ip:port/manager/text路径,输入用户名和密码后,出现下图便算成功!

         

          

           ps: tomcat版本6或以下的,不用去访问http://ip:port/manager/text

    2. 配置maven conf下的setting.xml文件,在servers标签下添加以下代码:

    <server>
      <id>tomcat7</id>
      <!-- 要与tomcat的tomcat-users.xml设置的用户和密码一致 -->
      <username>admin</username>
      <password>123456</password>
    </server>
    View Code

    3. 配置项目的pom.xml文件,在profiles中配置不同端的tomcat访问:

         (1).添加profiles标签以及tomcat的配置内容,代码如下:

      <!-- 配置不同的环境 -->
      <profiles>
          <!-- 配置本地服务器 -->
          <profile>
            <!-- id区分不同的服务器 -->
          <id>dev</id>
          <properties>
                 <!-- 用于Glogs命令 -->
             <profiles.active>dev</profiles.active>
              <deploy.url>http://localhost:8080/manager/text</deploy.url>
           </properties>
          <!-- 是否默认部署的tomcat -->
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
        </profile>
          
          <!-- 配置云服务器  -->
          <profile>
          <id>ecs</id>
          <properties>
              <profiles.active>ecs</profiles.active>
              <deploy.url>http://ip:port/manager/text</deploy.url>
          </properties>
        </profile>
      </profiles>    
    View Code

         (2).在build标签,plugins标签添加tomcat的插件,代码如下:

    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
        <!-- 根据golas命令,操作对应Tomcat的信息,并引用其url -->
            <url>${deploy.url}</url>
            <!-- 此处的名字必须和setting.xml中配置的ID一致-->
        <server>tomcat7</server>
        <!-- 此处的名字是项目发布的工程名-->
        <path>/${project.build.finalName}</path>
        </configuration>
    </plugin>   
    View Code

    4. 编写不同端的gloas命令,右键maven项目,run as --> 第二个maven build

       tomcat7:deploy   部署到设置默认tomcat                                                       

       tomcat7:redeploy  修改到设置默认tomcat

       tomcat7:deploy -P ecs  部署到profiles.active标签为ecs的tomcat               

       tomcat7:redeploy -P ecs  修改到profiles.active标签为ecs的tomcat 

       PS:后面两项命令请根据各自的profiles.active标签值为准

    成功的话,在对应tomcat的manager下会有该项目

    已知部署不成功的问题:

         1. java版本不对应导致编译出错,解决修改java版本并右键maven项目,mave-->Updata Project。

         2. 无法连接tomcat。查看tomcat的配置是否正常并访问http://ip:port/manager正常

    总结:maven项目多部署,利用了部署方式的第二种,这种多部署方式,缺点有以下几点:

               第一,每个tomcat设置的用户和密码是一致的,信息比较统一,容易被管理也容易被盗取

               对于我来说,我可以将maven项目,以第三种部署方式进行部署本地,以第二种部署方式来进行部署服务器,这样,开发过程种可以随时随地修改java文件,等功能完善的差不多,便可以发布到服务上。

            

        

        

  • 相关阅读:
    php解析xml文件的方法
    while倒数阶乘的和
    菱形代码
    0929课堂随记
    0929作业
    0928练习作业
    HelloJava
    Java例题
    Hello World(本博客启程篇)
    vue 如何实现在函数中触发路由跳转
  • 原文地址:https://www.cnblogs.com/hjlin/p/11216273.html
Copyright © 2011-2022 走看看