将web项目(maven)war包部署到远程Tomcat的实践

2,053 阅读2分钟

1.前言

web项目一般有3种环境:dev,test,online;
test和online大都部署在Linux服务器上,所以对于java开发人员来说,需要了解Linux的基本操作以及对于开发项目,如何从本地部署web项目至服务器上也是很重要的。

  • 服务器中环境准备: jdk和Tomcat
  • 对于数据库来说,一般大型项目数据库都是单独部署在不同的服务器上,所以不需要单独配置数据库环境

2.maven自动部署web项目至远程Tomcat

  • 1.配置服务器Tomcat访问权限:服务器中Tomcat根目录 conf/tomcat-user.xml,在标签中添加如下,打开Tomcat中的manager功能。如下图所示,配置好即可在本地通过http://服务器ip:8080/manager访问manager(需要输入账户密码)。Tomcat的webApp下默认有docs examples host-manager manager等几个web项目。
<role rolename="tomcat"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script" />
<role rolename="admin-gui"/>
<user username="admin" password="admin" roles="tomcat,manager,manager-script,admin-gui" />
<user username="tomcat" password="tomcat" roles="manager-gui" />

  • 2.本地web项目的pom.xml中添加配置,如下,pathA为Tomcat服务器中的部署路径,username和password是上面user.xml配置的账户密码。
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>${tomcat.maven.version}</version>
        <configuration>
          <!-- http port -->
          <url>http://服务器ip:8080/manager/text</url>
          <path>/pathA</path>
          <username>tomcat</username>
          <password>tomcat</password>
        </configuration>
      </plugin>
      <plugin>
  • 3.本地在项目根目录下,使用maven打包一键部署:-DskipTests 跳过测试 -DAPP_ENV=dev 开发环境;
  • 4.运行时需保证远程Tomcat服务器在启动状态
第一次部署
mvn -DskipTests -DAPP_ENV=dev tomcat7:redeploy
再次部署
mvn -DskipTests -DAPP_ENV=dev tomcat7:redeploy
-- 也可以使用idea界面maven build。
  • 5.部署完成

本机可以使用ip访问服务器中的web项目~

实时查看Tomcat运行日志:warName war包名
tail -f /data/logs/warName.log

3.idea调试远程Tomcat

  • 为什么要这么做?本地的测试通过,放到test环境就出问题了,或者只能在test环境测试的流程。由于test是在虚机上的,仅通过查看test环境log无法解决,且无法debug代码。
  • 通过本地idea连接test环境的Tomcat,直接debug。

步骤待更。

n.总结

需要了解的部分包括:

  • 1.maven打包项目
  • 2.Tomcat的作用
  • 3.Linux的基本使用