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文件,等功能完善的差不多,便可以发布到服务上。

        

    

    

原文地址:https://www.cnblogs.com/hjlin/p/11216273.html