自动构建系统
来源:互联网 发布:雷曼克斯写频软件 编辑:程序博客网 时间:2024/04/27 21:00
自动构建系统
附件:4,Stian Soiland-Reyes添加,最后一次由Stian Soiland-Reyes修改,修改日期:2010-11-12
myGrid使用Hudson平台来自动构建Taverna的源代码。
在Hudson中,每一个来自Subversion的工程都应该对应着一个工程 (例如,每一个像net.sf.taverna.*这种形式的文件夹,在Subversion中都有一个trunk/tags/branches的结构目录。
在Hudson中把这些工程分组后, 你就可以大概的找到在Subversion中对应的类别,例如,engine,utils和ui.
自动构建
每一个工程应该用“Poll SCM”构建触发器组织起来,把poll设置成每隔5分钟获取一次。全系统的宽限期(构建时间)4分钟一次。这样做的意思是:对于每一个工程,Hudson会每隔5分钟做一次svn update来看看在Subversion中是否有代码被改变了,如果改变了,再等4分钟,做一次工程的构建。
另外,Hudson能够理解依赖,因此任何一个工程如果依赖一个最新构建的工程,马上会被重新构建一次--这种方式将会递归的进行
由于Hudson使用一般的mvn clean install的命令,任何编译失效或单元测试失败都会被捕捉,这些错误在屏幕上会以一个黄色或者红色的小球表示。
每日构建
另外,除了在Subversion提交时会自动构建外,系统也会进行每日构建。 构建工作从虚拟的Hudson工程net.sf.taverna.t2.build.full开始。这个工程会在每晚03:41 开始构建,有一个 "构建其他工程"的选项,让你可以转到其他任何一个工程。这也意味着你可以通过在工程上的按钮“Build Now”来强制重新构建工程。
不幸的是,Hudson也有一个“编译其他依赖‘我’的工程”逻辑,它的意思是,有些工程在晚上会被构建2次或更多。
[net.sf.taverna.t2.builds.taverna-workbench.maintenance] 工程每晚都会运行,它的工作是从maintenance分支上把Taverna 构建树彻底的签出,然后编译。这样做确保了Taverna的所有代码都走了一遍,同时,也会在Maven的私有库上构建以验证代码没有依赖Hudson中的其他构建。
上面的工作等同于 net.sf.taverna.t2.builds.taverna-workbench,只是该工程放在了trunk构建树上(build tree).
maintenance构建触发器是一个单独的Hudson构建[net.sf.taverna.t2.taverna-workbench.nightly],它会产生一个Nightly快照 - 一个那晚构建好的完整的、可执行的Taverna发行版。但是,只有在[workbench-distro]模块中构建的发行版本可以被下载使用,这时候的版本比较典型的命名方式如taverna-nightly-2.3-SNAPSHOT-20101111-bin.zip。
Maven快照发布
一旦成功构建,net.sf.taverna.t2.builds.taverna-workbench.maintenance 和net.sf.taverna.t2.builds.taverna-workbench将会发布快照artifacts到myGrid的Maven快照库中。
因此,只要构建成功,最新的快照版本就可用了,反过来说,如果有任何模块构建失败或者测试失败(比说因为API改变),不会有任何改变的artifacts会发布出去-这样保证了Maven 用户总是能从快照库中得到“最近成功构建”的artifacts。
大多数Maven的安装程序,如果超出了24小时的过期时间,都会更新快照依赖。当然,你也可以改变这种设置。如果你在Eclipse中使用m2eclipse的话,你可以强制这种更新,方法是在工程上右击出现的菜单中选择Maven -> Update snapshots。
用户访问
- 自动构建系统
- 基于Jenkins的自动构建系统开发
- 构建Android自动编译持续集成系统
- 基于Jenkins的自动构建系统开发
- 基于Jenkins自动构建系统开发
- Jenkins的自动构建系统开发模型
- 基于Jenkins的自动构建系统开发
- 自动构建
- 自己写的自动构建管理系统ABS介绍
- python搭建自动构建系统的中文编码问题
- 关于mis系统自动构建的一些思考
- 深入php内核四(自动构建系统)
- C++编程规范之2:使用自动构建系统
- .net 基于Jenkins的自动构建系统开发
- 基于机器学习的自动问答系统构建
- 基于git maven的自动构建系统系列一
- 基于git maven的自动构建系统系列二
- 基于git maven jenkins的自动构建发布系统三
- .NET 对象序列化
- Android上使用Google Map
- crontab执行失败的问题
- insert a image to the database. (convert byte[] to varbinary)
- JavaScript獲取dropdownlist的值
- 自动构建系统
- Delphi 用recno定位记录的当前位置 适合于小型数据库
- 从3DS MAX建模到Ogre实时动画的制作过程
- dm9000移植修改原理(时序分析)
- Cache的替换策略
- dm9000移植修改原理(时序分析)
- dm9000移植修改原理(时序分析)
- android应用类开发小结--android google map小应用
- 数据库连接池