持续集成实践 --- Luntbuild 扩展 ---- Builld Version Generated From SVN Revison
最近使用CI Server, 像hudson, cruisecontrol, luntbuild. 三者Luntbuild功能最全面, 当然crusecontrol,hudson也有丰富的plugin得到增强.
?
下载luntbuild1.6.2, 发现Luntbuild没有直接支持从版本管理工具中获取Revision来生成Build Version. Build Version可以使用OGNL来生成, 翻阅用户手册得知, 其OGNL的Root Object为Schedule, 决定改源码达到此功能.
?
学习了Ognl后并仔细阅读源码发现, com.luntsys.luntbuild.builders.Builder.Schedule具有sytem属性,指向OgnlHelper.决定改写此类.
?
为com.luntsys.luntbuild.utility.OgnlHelper添加方法
?
private static class SvnRevsionHolder {private String revision;private Date lastCommittedDate;public void setLastCommittedDate(Date lastCommittedDate) {this.lastCommittedDate = lastCommittedDate;}public void setRevision(String revision) {this.revision = revision;}public String toBuildVersion() {return new StringBuffer().append(revision).append("-").append(new SimpleDateFormat("yyyyMMddHHmm").format(lastCommittedDate)).toString();}}
?
编译之后把原有的class文件替换后,重启Server便大功告成.
?
?