一、什么是Hudson
Hudson 是一种革命性的开放源码 CI 服务器,它从以前的 CI服务器吸取了许多经验 教训。Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的CI 服务器。Hudson 容易使用的第二个原因是它具有强大的插件框架 ,所以很容易添加特性。例如,一个 Hudson 插件可以随时间的推移跟踪FindBugs 和代码覆盖。它还可以报告测试结果的趋势(来自 JUnit 或 TestNG)以及构建结果和对应的执行时间。
Hudson 运行需要Java 。如果需要使用 Hudson 附带的嵌入式容器(Winstone)之外的其他容器,那么只需使用一种 Servlet容器。对于大多数情况,Winstone 就足够了。运行Hudson有两种方式: 1.可以将Hudson部署到Tomcat下面运行;2. 可以使用命令启动hudson。步骤:首先下载hudson.war(https://hudson.dev.java.net),然后可以在一个盘符下建立一个文件夹,如C:\hudson,然后将这个路径设置环境变量,HUDSON_HOME=C:\hudson,最后使用命令java -jar hudson.war启动hudson。在浏览器里输入http://localhost:8080启动Hudson。
二、Hudson 配置
在主界面点New Job,在接下来的页面里Job name里输入项目名(比如Test),然后选择Build a free-style software project,然后点OK。在接下的页面里,在Source Code Management选择Subversion,然后输入Repository URL,选中Use update,选择Poll SCM,在Schedule输入* * * * *表示每一分钟build一次,具体配置规则请看帮助。最后点击保存即可。
三、Hudson运行过程中可能出现java.lang.OutOfMemoryError: Java heap space错误
原因:JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
例如:java -jar -Xmn16m -Xms64m -Xmx128m MyApp.jar
如果Heap Size设置偏小,除了这些异常信息外,还会发现程序的响应速度变慢了。GC占用了更多的时间,而应用分配到的执行时间较少。
Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
Heap size的 -Xms -Xmn 设置不要超出物理内存的大小。否则会提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。
解决办法:用此命令运行hudson:
java -jar -Xms128m -Xmx1024m E:\software\hudson.war
其中的-Xms128m -Xmx1024m数值根据实际服务器配置确定。