使用ANT脚本批量执行SQL,并且结合Jenkins自动化构建

本文介绍了如何使用ANT脚本自动化执行SQL脚本,将SQL文件按顺序执行并记录日志。在遇到错误时,ANT脚本会停止执行并通知Jenkins,Jenkins任务随之变红并发送邮件。内容包括ANT脚本的编写细节,如数据库连接、SQL排序及异常处理。同时,探讨了在Jenkins中通过ANT插件和Shell脚本两种方式执行ANT脚本的问题与解决方案。
摘要由CSDN通过智能技术生成

背景:由于项目构建会涉及一些SQL脚本,每次需要run一堆的SQL来升级环境。所以想用一些脚本来自动完成这项工作。

思路:首先把所有需要跑的SQL放在一个文件夹内,按照跑的顺序编码排列好;再通过ANT脚本来读取这个文件夹下面的所有SQL,然后通过ANT连接数据库,按顺序逐个执行SQL;每个SQL执行完会输出一个log文件,记录执行状况;如果有一个SQL文件执行错误就会输出错误的log并停止执行下一步,(因为本人的SQL是有关联的,一旦前面有一个出错,后面也都会有点问题,所以需要停下来。如果你不想停止,那就捕获异常,继续执行下面的操作。)。当ANT执行出错以后,Jenkins的任务也会停止变红,并且发送消息到Email。

--------------------------------------------------------------------------------------

环境:

 

  • Linux环境
  • 安装ANT工具。
  • 下载mysql连接jar包。

编写ANT脚本:(由于是私有项目,只能共享部分实现思路code)

1. 首先,定义antlib task,后面会用到antlib内置的资源比较器。

<taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${lib}/ant-contrib-1.0b3.jar"/>
<taskdef resource="net/sf/incanto/antlib.xml" classpath="${lib}/incanto-0.2.4.jar"/>

2. 定义DB连接的一些信息(定义property),此处也可以使用外部的properties文件来导入。

<property file="settings/build.properties"/>

3. 定义一个target:runSqlInFolder

使用try catch包裹SQL执行标签。(我这里用的是mysql,所以用的是sql标签,如果使用oracle可以使用sqlplus)

下面的<fail>是为了让Jenkins感受到ANT执行出错了,然后Jenk

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值