用Ant来做一键部署

时间:2021-10-02 19:27:25

部署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