Maven 自动部署

2016/01/01 Tool

使用 Maven 命令打包项目后直接部署到服务器上。

准备

  1. Maven 3.2.5
  2. JDK 1.7
  3. Tomcat 7

配置

  1. 首先在Tomcat里配置deploy的用户(tomcat根目录/conf/tomcat-users.xml):
  <role rolename="tomcat"/>
  <role rolename="manager"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-script" />
  <role rolename="admin-gui"/>
  <user username="tomcat" password="tomcat" roles="tomcat,manager,manager-script,admin-gui" />
  <user username="admin" password="admin" roles="manager-gui" />

XX-gui代表的是图形界面操作权限。这里需要的是manager角色的权限。

  1. 修改Maven的setting.xml(默认是C:\Users\用户名.m2\settings.xml),在<servers>节点下添加
<server>
      <id>tomcat7</id>
      <username>tomcat</username>
      <password>tomcat</password>
    </server>
  1. 在项目里添加tomcat插件
 <finalName>webx_0100_helloworld</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <!-- server、username、password对应maven的setting下的配置 -->
                    <server>tomcat7</server>
                    <path>/${project.build.finalName}</path>
                    <!-- war文件路径缺省情况下指向target -->
                    <!--<warFile>${basedir}/target/${project.build.finalName}.war</warFile>-->
                </configuration>
</plugin>

这里<finalName>指定项目打包后的文件名(要加package类型后缀)

  1. 在项目根目录下执行
//第一次
mvn tomcat7:deploy
//之后
mvn tomcat7:redeploy

注意:一开始一直报错

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:
redeploy (default-cli) on project webx_0100_helloworld: Cannot invoke Tomcat man
ager: `Connection` reset by peer: socket write error -> [Help 1]

查找到的会造成这个的原因有:

Search

    Table of Contents