使用Ant对程序打包并上传服务器

在开发过程中,常常需要同步更新服务器上的程序。如果每次都将程序重新打包,然后再登陆服务器进行上传,这样过程显得比较繁琐,特别是更新步骤较多时,很容易出错。我们可以通过Ant来实现打包和上传过程,如果是与Eclipse集成的,那整个过程将更加简化。

软件版本:apache-ant-1.7.0

ant脚本其实整个过程比较简单,主要用到两个task,jar和scp。其中,scp是ant的扩展task,需要第三方的库jsch的支持。可以到http://www.jcraft.com/jsch/index.html进行下载,目前的最新版本为jsch-0.1.34.jar。下载以后,将其放在Ant_Home/lib即可。注意,如果是在Eclipse中使用Ant,需要重新加载Ant_Home,确定jsch-0.1.34.jar被导入到Eclipse中才能正常使用scp。Eclipse配置如图所示

具体build.xml如下:

xml代码1.<?xmlversion="1.0"encoding="GBK"?>

2.<projectname="remote"default="update"basedir=".">

3.<propertyname="src.dir"value="${basedir}\src"/>

4.<propertyname="class.dir"value="${basedir}\bin"/>

5.<propertyname="lib.dir"value="${basedir}\lib"/>

6.<propertyname="conf.dir"value="${basedir}\conf"/>

7.<propertyname="package.dir"value="${basedir}\dist"/>

8.<propertyname="programName"value="Server"/>

9.

10.<propertyname="address"value="192.168.0.22:/home/Navy/"/>

11.<propertyname="user"value="root"/>

12.<propertyname="password"value="123"/>

13.

14.<targetname="init"description="初始化环境">

15.<echomessage="初始化目录"/>

16.<deletedir="${package.dir}"/>

17.<mkdirdir="${package.dir}"/>

18.</target>

19.

20.<targetname="package"depends="init"description="打包">

21.<echomessage="将class打包,输出到${package.dir}"/>

22.<jarbasedir="${class.dir}"jarfile="${package.dir}\${programName}.jar"/>

23.</target>

24.

25.<targetname="update"depends="package"description="上传">

26.<echomessage="将jar上传服务器"/>

27.<scpfile="${package.dir}\${programName}.jar"todir="${user}:${password}@${address}"

28.trust="true"verbose="true"/>

29.<echomessage="上传完毕"/>

30.</target>

31.

32.</project>

其中,scp任务的trust属性必须设置为true,否则会出现如下错误:

com.jcraft.jsch.JSchException:rejectHostKey:192.168.0.22

ant

相关推荐