hudson 手记
最近在开始部署自己的一个编译平台,主要是为了对当前的代码进行自动化的审核和编译,以前我使用过的CI工具是CC和Bamboo,大略使用过TeamCity,都觉得不是很好用,在SCM-LIFE上有个哥们很有意思的推荐了一个冷门的Hudson,这个年轻的项目(历时一年),使用了一下,觉得不错,主要是他的插件系统比较强大,正对我的胃口,我可以将不同的东西慢慢整合到一起,这样免得出现到处找东西的现象。
这个系列文章的安排如下:
这么多的东西,我的工作也比较多,只能晚上写,所以耗的时间肯定要长了,呵呵,没办法,咱家也是一个人啊,而且我家的宝贝千金刚刚出生,大家原谅则个。原本打算写写Hudson的开发的,看这个样子比较麻烦,如果有时间就放在Part4吧,呵呵。
本系列文章不涉及ANT/MAVEN等等的使用,呵呵,有兴趣的自己去找资料吧,GG上大大的,小心被信息淹没,哈哈。
我现在没有耐心去写关于几个CI工具的优缺点,所以暂时就免了这遭吧。Hudson可以在他的主站上去下载,是的,是免费的而且是开源的,如果你有这个耐心去看源代码,否则开不开元对你来说都是废话。我尝试使用JB2006配置了一下编译,能够编译通过,lib分散的比较厉害,需要自己处理。
Hudson的主站在https://hudson.dev.java.net/ ,是SUN公司自己的开源项目站点,呵呵,别以为这个鸟东西就怎么样,下载速度比起微软的站点,实在是没法比,特慢。也不知道SUN的主机是怎么配置的。这里有个小插曲,我下载的时候使用的是Flashget1.8版本,居然不能下,检查了一下,因为是HTTPS协议。使用迅雷下载更可乐,总是在下载到达10M的时候断开,联想起最近我老婆的电话总是通话1分钟就自动掉下去的情况,我怀疑有人给我设置了什么阀值,哈哈。最后我还是使用的直接拖下来的,花了1个多小时,真感觉回到了那个拨号上网的时代啊。
HUDSON的第一个好处出来了:一定会让你想起你的网络带宽清苦的日子,忆苦思甜啊。
当前版本是这些天才发布的(懒得看时间了,自个去看吧),是一个jar文件,整个hudson的东西都在这个Jar文件中。
注意:
Hudson主站上的文档链接我这边失效的,无法链接,如果需要看这些文档,使用google快照看,我就是这么看的L,别问我怎么看google快照,问GG去。
Hudson部署手记我在部署的时候吃了不少的亏,为了避免新手走弯路,请各位准备如下东东:
好的,可以继续了,我们先 看看Hudson如何启动。首先我们要做的是部署自己的JAVA_HOME,这个环境变量其实可以不用设置,在我的机器上,我设置的环境变量是JDK5;然后我们需要决定如何启动Hudson。
Hudson内嵌了一个JSPContainer,就是传说中winstone,所以Hudson启动的第一种方法就是自举,自己启动自己的Web Container,运行方法是
Java –jar hudson.jar ,非常简单,不需要任何设置,你就可以在浏览器中输入http://localhost:8080 访问到hudson了。如果更进一步,你可能想要修改类似端口号之类的东西,那么请参考winstone的官方站点,把这些参数直接附加在命令行后面就可以了,例如
java -jar hudson.jar --httpPort=9999 --ajp13Port=19998
这就是告诉winstone,我们侦听的端口号修改了。
另外一种启动方法则是直接将hudson作为一个war包进行部署,可惜的是,必须是Tomcat5.5以上版本才支持,我没有深究,应该是和tomcat5.5支持的JSP规范相关。在tomcat下部署非常简单,修改hudson.jar的后缀名为.war,然后拷贝到tomcat目录下的WebAPPS下面就可以了,如果你想将hudson部署成为根路径,则需要将hudson.jar更名为ROOT.war,注意,这里大小写敏感。
启动起来之后我遇到的第一个问题就是中文问题,这款软件的作者好像是个日本鬼子,名字颇有日本风格,居然不支持unicode,具体表现在:
这几乎就是不可用了,我查找了大量的资料,没有找到winStone的编码设置的地方,而修改hudson自己的HudsonFilter这个Servlet过滤器又有些麻烦,所以我只好部署到了tomcat,修改server.xml中的Http Connector配置,增加一个属性URIEncoding="UTF-8"以解决这个问题。
最后,我需要不间断的启动我的CI服务器Hudson,在Windows这样的系统中,最好的做法当然是将他弄成服务。按照以下步骤执行:
在tomcat6的目录下bin中,执行DOS命令 service.bat install hudson,提示服务hudson安装成功,然后在命令行中输入 net start hudson启动服务(注意net和start中有个空格,不是那个netstat)。
欢迎进入hudson的世界欢迎进入hudson的世界,hudson的世界没有什么高深的理论支持,简单的很,首先我们要做的是设置 hudson,进入hudson的首页,打开Manage Hudson,点击System Configuration,进行设置,首先我们看到的是Hudson的Home Directory,也就是根目录,这个目录是Hudson用来保存项目基本信息和日志的,默认的是用户自己操作系统的目录,例如C:\Documents and settings\用户名\Hudson,很多时候我们并不是希望吧东西保存在这个地方,所以我们要做的就是修改这个位置。
修改HOME位置有几个方法,可以修改Web.xml文件,可以使用-D参数,我建议使用最简单的环境变量设置,即是添加一个环境变量HUDSON_HOME指向HOME目录。记住,HOME目录修改之后需要重新启动。
在下面我们可以找到一个ANT配置,另外还有MAVEN的配置,这两位先生都是我们CI的主角,所以不得怠慢,配置好之后保存完成。
然后我们需要配置一个项目来使用我们的CI,退回到HUDSON的主页(不知道怎么退回去?你自己找找按钮吧)
点击New Job,一个JOB?对应我们的一个实际的项目,填写JOB NAME,这里需要注意的是,只能输入英文字母不能输入符号和中文,郁闷吧。然后我们选择第一项?Build a free-style software project,选择OK进入下一步。在接下来的页面中可以进行项目的详细设计,这里有几个注意的地方:
OK,配置完成了,你可以按下Build Now试试了。