需求
项目组有一套企业级JavaWeb应用,以前在发布新版本时,都是通过ant将核心源码混淆后打成jar,再通过开发工具导出成war包,然后将加密混淆后的jar添加到war包中,部署到tomcat中。整个流程虽然不够复杂,但整个流程下来至少30分钟。最初的想法就是想让这一切工作全部自动化,节省项目新版本发布时间。
软件选择
考察了一些现有持续集成软件,觉得Jenkins 和 Ant都能满足需求。
Jenkins 功能很强大:UI界面、邮件通知、测试报告、分布式构建、多种插件支持。想学习建议参考这篇就够了《Jenkins入门系列之——03PDF文档下载》
考虑到现有环境一个Ant足以,而且对Ant相对有些了解,所以决定使用Ant搞定持续集成环境。
基于Ant的持续集成环境
环境准备
JDK 安装:提供java编译与运行环境
Ant 安装并配置环境变量
1 | cd /usr/ |
- Ant 配置环境变量vi /etc/profile 编辑成功后执行source /etc/profile
1 | export ANT_HOME=/usr/apache-ant-1.9.13 |
- 目录准备
1 | [tomcat@localhost packageEnv]$ pwd |
- svnant准备
实现ant可以从svn服务器上检出代码要使用svnant相关的jar文件。
下载地址:http://subclipse.tigris.org/files/documents/906/49042/svnant-1.3.1.zip
将下载好的svnant解压将 ib目录下的所有jar复制到ant主目录中的lib目录下。
混淆工具
yguard 下载后放置在项目中,和src 同级目录中。 下载地址:https://www.yworks.com/downloads
build 流程
- properties配置文件准备
- 打印环境及 properties信息
- 停止tomcat
- 定义ant.svn.classpath,使用svn任务时可以使用
- 设置svn相关属性
- 清理旧文件
- 创建初始化目录结构
- 从svn 检出源码
- 初始化classpath
- 编译java源码
- 将class文件打成 jar包
- 混淆源代码
- 将混淆后的jar包加密
- 打成war包
- 将war包部署tomcat
- 启动tomcat
整个流程下来我们只需要登录目标服务器,切换到/home/tomcat/packageEnv 目录,执行ant命令即可。
核心build.xml
1 | <?xml version="1.0" encoding="UTF-8"?> |
实现效果
Build成功后可直接访问项目地址,查看最新的发布结果。