好久没有写博客了,今天为大家分享一下如何在eclipse通过maven远程发布应用到Tomcat。
一般情况下,我们发布应用到服务器需要现将应用导出成war包,然后连接服务器部署更新,这样是很耗时的,而且不方便,作为一名程序员要寻找尽可能简洁的方式去处理类似应用发布的重复的操作。
maven是非常好的组织包工具,我们现在就来使用maven实现远程发布应用到Tomcat服务器。
我的开发环境信息:
maven:3.3.9
Tomcat:8.0.35
第一步:配置Tomcat角色权限信息
修改tomcat-users.xml
文件,向其中添加如下信息(用户名密码以实际为准):
<role rolename="manager"/>
<role rolename="admin"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin123" roles="admin,manager,manager-gui,manager-script,manager-jmx,manager-status"/>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
修改完成后,启动并访问Tomcat测试配置是否生效。
单击Manager App
按钮,在弹出的对话框中输入刚才配置的用户信息,最后单击登录按钮,成功登录即为配置成功。
第二步:修改maven的setting.xml配置文件,添加服务器信息
<server>
<id>devTomcat</id>
<username>admin</username>
<password>admin123</password>
</server>
- 1
- 2
- 3
- 4
- 5
这里面的用户名及密码信息要和第一步中配置的一致。
第三步:打开maven项目的pom.xml
文件,向其中添加如下配置
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://172.20.6.169/manager/text</url>
<server>devTomcat</server>
<path>/dev</path>
</configuration>
</plugin>
</plugins>
</build>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
在这段配置中:
url为远程Tomcat服务器地址,理论上只要更换IP地址就可以了,server为maven配置文件中位置的服务器信息的id,path为应用最后发布的上下文路径。
第四步:配置Goals为:tomcat:redeploy
在项目上右击,选择Run As
->Maven Build
,在弹出的对话框中输入Goals的值为tomcat:redeploy
,最后单击Run
按钮,开始编译发布。这一步在配置完成后,再次单击Maven Build
会直接编译发布,挂差控制台输出信息,输出形如下方的内容即为发布成功
[INFO] Deploying war to http://172.20.6.169/dev
[INFO] OK - Deployed application at context path /dev
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 20.254 s
[INFO] Finished at: 2016-10-09T16:05:16+08:00
[INFO] Final Memory: 14M/228M
[INFO] ————————————————————————
如果日志中输出404错误,请检查url配置的是否正确,如果输出403错误,请检查Tomcat用户角色配置是否正确。
至此,我们就完成了通过maven远程发布应用到Tomcat的配置。
小提示:
在编译发布项目的时候,Maven可能会编译测试代码导致编译发布失败,我们可以在pom.xml
中添加如下配置,跳过测试代码的编译
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>