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
· 项目存放路径
· 选择项目类型,webapp
· 填写项目坐标,在POM.xml中体现,Artifact ID是项目的ID。
· 修改pom.xml,填写需要下载的jar包。
· 生成代码后,项目右键 - Maven - update project,下载jar包。
· 开始写代码
在eclipse中看到项目文件有红色的×,有时候不影响运行。
另外,同一份项目文件也可以在idea打开,只是多了.idea这样的引导文件。
接下来,就是部署文件:
1. 打war包到tomcat/webapps目录
· maven clean
整个target文件夹会被删掉
· maven install
target会生成springmvc09文件夹和springmvc09.war
· D:\Java\apache-tomcat-8.5.41\bin 运行 startup.bat,启动tomcat服务
· 上传 springmvc09.war 到在tomcat的web即可
· 管理页面,点击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包。
· tomcat7:deploy 第1次部署执行,会从网上下载tomcat7的jar包。
· tomcat7:redeploy 第2次或以后需要重新发布执行
我用的是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)
· maven clean -> maven install -> target会生成springmvc09文件夹和springmvc09.war
· 右键servers中tomcat,add and remove...添加项目,启动tomcat即可。
这个方法适合在eclipse开发、调试时用。