首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

hudson 手写

2012-07-16 
hudson 手记最近在开始部署自己的一个编译平台,主要是为了对当前的代码进行自动化的审核和编译,以前我使用

hudson 手记

最近在开始部署自己的一个编译平台,主要是为了对当前的代码进行自动化的审核和编译,以前我使用过的CI工具是CC和Bamboo,大略使用过TeamCity,都觉得不是很好用,在SCM-LIFE上有个哥们很有意思的推荐了一个冷门的Hudson,这个年轻的项目(历时一年),使用了一下,觉得不错,主要是他的插件系统比较强大,正对我的胃口,我可以将不同的东西慢慢整合到一起,这样免得出现到处找东西的现象。

这个系列文章的安排如下:

    Part1: 介绍安装和使用hudson Part2:介绍重量级插件FindBugs的使用。 Part3:介绍重量级插件violations的使用。 Part4:介绍其他的常用插件。

这么多的东西,我的工作也比较多,只能晚上写,所以耗的时间肯定要长了,呵呵,没办法,咱家也是一个人啊,而且我家的宝贝千金刚刚出生,大家原谅则个。原本打算写写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部署手记

我在部署的时候吃了不少的亏,为了避免新手走弯路,请各位准备如下东东:

    JDK1.5 Update7以上版本,从SUN的那个深深的站点中下载,我最开始使用的JDK1.5 Update3明显不行,主要原因是这个Hudson使用了SVNKit作为SVN的客户端,在低版本的JDK上,这个东东会出现最以外的:找不到指定文件的错误。对,你想的不错,Hudson不需要你安装额外的SVN客户端工具就可以操作SVN。如果你需要使用不同的JDK来编译实际的项目,你还需要准备这些编译用的JDK。 Ant,版本无所谓,如果有人翻译成蚂蚁,那也别看这篇文章了,因为很不适合。 Tomcat5.5以上版本,如果你的SCM中没有中文,这个东西可以省了。其他的Container除了明确不支持Resin以外,好像都支持,没有测试过,也看不到完整的hudson文档,继续郁闷。我方便测试,就使用的是Tomcat,下载的是最新的tomcat6的版本。 你的磁盘空间:根据你自己的项目多少和规模大小,准备好自己的磁盘空间吧。

好的,可以继续了,我们先 看看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,具体表现在:

    输入中文显示乱码,不管是描述信息还是注释信息,都不能是中文的。 SVN路径中不能包含任何中文字符,当然也包括我那名震江湖的"开发域"。

这几乎就是不可用了,我查找了大量的资料,没有找到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进入下一步。在接下来的页面中可以进行项目的详细设计,这里有几个注意的地方:

    Discard Old Builds:这个选项可以清除以前编译的版本历史,使得界面清洁一些。 选择SVN的时候,会提示输入SVN的用户名和密码,这个用户名和密码Hudson会自己记录下来,不需要重复输入,鉴于SVN的模式,SVN上一个项目必须输入一次用户和密码。 触发器按照时间触发的时候不是使用Tab键分隔,而是使用空格键,也不知道这家伙怎么倒腾的。 Ant的Build.xml文件最好指定一个绝对路径,我使用多个SVN项目的源代码的时候出现过混乱,郁闷了许久。

OK,配置完成了,你可以按下Build Now试试了。

热点排行