部署Java Web项目到远程服务器上,以前经常用的操作方式:
1、在eclipse上导出项目war包
2、把war包通过ftp方式传到服务器上,比如Tomcat的webapps目录下
3、启动tomcat,自动解压war文件,生成该项目的文件夹,这时候算部署完毕
以上步骤是初次部署项目,如果项目有改动要重新部署的话,又要关闭tomcat,删除原来的项目文件夹(包括原来的war文件),然后再重复上面的步骤。
想想如果要部署的是服务器有多台,这样操作肯定要累死人了,而且很容易存在操作失误。
其实可以用Ant来做一键部署,比如一下build.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project name="disconf" basedir="." default="upload"> <target name="upload" depends="remove"> <scp todir="root:B4gjqXtshLnEckqS@192.168.0.24: /data/apache-tomcat-8.0.35/webapps/disconf-web.war" file="D:/deploy/disconf-web.war" trust="true" > </scp> </target> <target name="remove"> <sshexec host="192.168.0.24" username="root" password="B4gjqXtshLnEckqS" trust="true" command="rm -f /data/apache-tomcat-8.0.35/webapps/disconf-web.war; rm -rf /data/apache-tomcat-8.0.35/webapps/disconf-web;"> </sshexec> </target> </project>
上面的Ant任务中,只有两个target:
remove是删除服务器原来的文件,它采用sshexec来执行服务器上的shell命令,像关闭tomcat服务也往command里添加,每个命令用分号隔开
upload是把war包上传到服务器上,用到的是scp,这个功能需要Ant之外的第三方jar包jsch,如果在eclipse上执行Ant命令时,会提示缺少jsch的jar包
自动部署工具
除了Ant外,其他的一键部署功能的,还可以用Maven的tomcat插件,还有就是jenkins