使用Maven完成自动化打包并部署到Linux服务器下(Tomcat7)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Maven完成自动化打包并部署到Linux服务器下(Tomcat7)相关的知识,希望对你有一定的参考价值。

最近在使用maven,顺便尝试了下tomcat部署。网上找到了很多资料但是都不是最新的,所以贴上比较新的Tomcat7部署代码和配置,方便以后回顾-->测试OK。

 

1. 首先是配置Tomcat conf 目录下的tomcat-users.xml,配置用户权限,提供给本地Maven使用

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

注意:刚开始我只配置了manager-gui这个role,在本地没问题,能正常登陆 http://127.0.0.1/manager,但是访问http://127.0.0.1/manager/text就不行了,所以如果需要配置的朋友可以把我的这个复制一份过去。

技术分享

 

成功登陆后就说明Tomcat权限已经配置好了,接下来就是本地Maven的配置了。

 

2.我的Maven项目用的是聚合工程,所以我在parent pom的项目里加了这段插件,Tomcat6我还没试过,所以不知道行不行。

<!-- 远程部署 -->
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <url>http://xxxxxx.xx.xxx:8082/manager/text</url>
                <server>test</server>
                <username>tomcat</username>
                <password>tomcat</password>
            </configuration>
        </plugin>

解释下 ur l就是你要部署到哪个端口的Tomcat下,不是项目的目录。Tomcat7默认这个,如果是6是不用加 text

 

3.接下来是Maven里面的settings.xml文件的配置,很简单,代码如下:

 <server>  
      <id>test</id>  
      <username>tomcat</username>  
      <password>tomcat</password>  
    </server> 

注意:这里的id对应的是Maven项目 pom.xml里面的 server , 其他的username 和 password都是一致的,即 Tomcat登录的用户名和密码。

 

4.如果以上配置都OK了,最后就是测试了,我这里是聚合工程,所以我是去我的子项目里面运行发布命令。记得如果要发布一定要记得提前启动Tomcat,否则会报错。

技术分享

 

      

PS:其中在这个过程中遇到了两个明显问题,一个是401,一个是403。

401:基本上是用户名或者密码配置的不正确。

403:有两种情况,

    1):pom里配置的url后缀是html,而不是text。这种是6的格式,7不能用,后缀只能是text。

<url>http://localhost:8080/manager/html</url>

    2):tomcat用户的权限配置不正确。按文中配置就ok。

还有就是,tomcat要先启动,不要用IDE启动,手动运行tomcat的startup.bat/sh。

OK了。

 

以上是关于使用Maven完成自动化打包并部署到Linux服务器下(Tomcat7)的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot maven项目打jar包并部署到 linux/windows服务

SpringBoot maven项目打jar包并部署到 linux/windows服务

jenkins(三)部署后台服务

使用 Maven 将 OSB 项目部署到服务器

jenkins+maven+svn 远程部署到weblogic 持续集成

Spring Boot(Maven)+Docker打包