vlambda博客
学习文章列表

Eclipse部署Maven项目到Tomcat的三种方法

    近期,在学习springMVC的项目,使用的是maven构建项目,但在eclipse运行的时候发现一直运行失败,于是了解在eclipse部署maven项目到tomcat的3种方式:

    eclipse : photon, jdk 1.8

    tomcat : 8.5.41

    maven : 3.6.0


  · 创建Maven project


  · 项目存放路径

Eclipse部署Maven项目到Tomcat的三种方法


  · 选择项目类型,webapp 

Eclipse部署Maven项目到Tomcat的三种方法


  · 填写项目坐标,在POM.xml中体现,Artifact ID是项目的ID。

Eclipse部署Maven项目到Tomcat的三种方法

  

  · 修改pom.xml,填写需要下载的jar包。

  · 生成代码后,项目右键 - Maven - update project,下载jar包。

  · 开始写代码

Eclipse部署Maven项目到Tomcat的三种方法

    在eclipse中看到项目文件有红色的×,有时候不影响运行。

    另外,同一份项目文件也可以在idea打开,只是多了.idea这样的引导文件。



接下来,就是部署文件:


    1. 打war包到tomcat/webapps目录

  · maven clean 

    整个target文件夹会被删掉

  · maven install 

    target会生成springmvc09文件夹和springmvc09.war

Eclipse部署Maven项目到Tomcat的三种方法

Eclipse部署Maven项目到Tomcat的三种方法

  · D:\Java\apache-tomcat-8.5.41\bin 运行 startup.bat,启动tomcat服务

Eclipse部署Maven项目到Tomcat的三种方法

  · 上传 springmvc09.war 在tomcat的web即可

Eclipse部署Maven项目到Tomcat的三种方法

  · 管理页面,点击springmvc09即可进入页面

  

    2. 使用tomcat-maven插件

    用插件部署的原理一样,只是把maven和eclipse的配置文件设置好,不用手工部署,方便测试时部署,所以,接下来要配置几个关键的文件。

    · 配置 Tomcat 的 D:\Java\apache-tomcat-8.5.41\conf\tomcat-users.xml 文件中的 <tomcat-users>标签,这是登录tomcat的账号和密码。

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

    · 启动 tomcat bin 目录下的 startup.bat,启动tomcat,并能正常访问

http://localhost:8080/manager

    · 配置 maven 的 标签 <servers> 添加子标签通过标签让 maven 去登录 Tomcat 服务器。

D:\IDE\apache-maven-3.6.0\conf\settings.xml
<server>
    <id>tomcat8</id>
    <username>admin</username>
    <password>admin</password>
</server>

    · eclipse 配置 pom.xml

<plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.1</version>
      <configuration>
          <!-- -->
          <url>http://localhost:8080/manager/text</url>
          <!--和D:\IDE\apache-maven-3.6.0\conf\settings.xml 配置一致-->
          <server>tomcat8</server>
          <!--和D:\Java\apache-tomcat-8.5.41\conf\tomcat-users.xml 配置一致-->
          <username>admin</username>
          <password>admin</password>
          <path>/springmvc</path>
      </configuration>
  </plugin>

    在eclipse运行以下命令:

    · clean install,和方法1的作用一样,一样是生成一个.war包。

Eclipse部署Maven项目到Tomcat的三种方法

Eclipse部署Maven项目到Tomcat的三种方法

  · tomcat7:deploy   第1次部署执行,会从网上下载tomcat7的jar包。

  · tomcat7:redeploy 第2次或以后需要重新发布执行

Eclipse部署Maven项目到Tomcat的三种方法

    我用的是tomcat 8,但插件用的是tomcat7,是兼容的,网上提供的tomcat8的插件包反而问题多,需要配合其他组件使用。第一次运行的时候,会从网上下载tomcat7的jar包,然后用这些jar包上传文件。


    3. 直接使用servers部署

  · test下的目录编译到target/test-classes,其他目录编译到target/classes目录

    有个坑,不加会一直加载不了代码:deployment assembly -> Add -> java build path entries -> maven Dependencies (默认路径 WEB-INF\lib)

Eclipse部署Maven项目到Tomcat的三种方法

Eclipse部署Maven项目到Tomcat的三种方法


  · maven clean -> maven install ->  target会生成springmvc09文件夹和springmvc09.war

  · 右键servers中tomcat,add and remove...添加项目,启动tomcat即可。

    这个方法适合在eclipse开发、调试时用。