Hudson是一款优秀的持续集成产品,本文阐述Maven于Hudson的集成

 
Hudson的下载和安装

Hudson有两种安装模式,1:自运行(Hudson内建netty容器),2:放到如tomcat等web容器中运行,我们推荐第二种
 
下载地址: http://hudson-ci.org/ 找到最新版的war文件下载,然后将下载的war文件放到tomcat的webapps文件夹中运行即可
 
默认Hudson工作空间为${user.home}/.hudson文件夹,随着项目持续构建过程的时间延续,hudson构建过程中的一切日志,报告,jar包,下载的源代码,等等文件都在这个文件夹下,时间长了,该文件夹将会十分庞大,建议规划好容量。
 
如果想要更改hudson的工作目录,可以设置环境变量HUDSON_HOME = e:/.hudson即可
 
注意:如果hudson放到容器中运行,可能由于hudson加载和运行的东西非常多,可能导致tomcat进程的heap区(堆栈区)空间不足,或JVM的永久带(PermGen)空间不足,此时应该调整tomcat的相关启动参数,重新启动tomcat来给予hudson足够的运行资源。
 
 
Hudson的系统配置

首次运行hudson会显示一个插件安装列表,我们可以只选择前三个默认勾选的插件,再加上一个subversion插件,然后点install(安装),(注:以后还可以通过”系统管理"- > "管理插件“来对插件进行管理)
 
安装好插件后,进入hudson主页
 
点击”系统管理”-> "系统设置“,将出现系统管理页面,在该页面主要要配置的项有:JDK,maven, subversion,邮件等,建议都使用本地的配置,不要选择”自动安装“,配置相当简单,而且点击每个配置项后面的”问号图标”都会显示详细的帮助信息,不需要赘述
 
 
 
等Hudson系统配置好了以后,我们就可以点击“新建任务"来创建第一个”构建任务“了。
 
 
建议选择“构建一个自由风格的软件项目”,这将可以让我们更加灵活自由的配置成我们期望构建任务。
 
一个简单的构建任务的创建:
1. 选择Discard old builds,告诉hudson我们需要销丢弃旧的builds,当点击该项后, 会提示更多的关于“如何丢弃的选项“
     days to keep builds: 表示builds保留的天数(这里填0)
     Max # of builds to keep: 表示保留多少填10表示个builds
 
 
 
2. 配置Source code management
 
3. 配置Build triggers,表示如何在满足什么条件的情况下会触发一次该构建任务的执行
 
 
我们让hudson每个10分钟轮询一次SCM,有更新才构建一次,这是比较好的一种策略,当然我们也可以选择其他trigger策略, 这里的调度使用的是unix调度工具cron,具体怎么使用cron配置请参考其他资料,*/10**** 表示每个10分钟的意思,schedule里面也可以填写相关注释,用#开头,见上图
 
4. 配置如何build
 
我们选择在”系统配置“中配置过的maven-3.2.1,然后设置一个maven goals,一般情况下我们填clean deploy即可,但这里为什么后面带了参数呢?后面的参数告诉maven,即使测试失败了,仍然需要执行编译,部署等过程,而不是中断部署
 
5. 配置”Post-Build Actions“, 配置编译后的一些行为
 
 
这里告诉hudson,编译好项目以后,需要把由surefire插件生成的junit测试报告xml文件拷贝到hudson中,然后hudson就可以为本次构建生成"项目测试报告”了。
 
6. 点击”save“,一定不要忘记保存!
 
至此,一个构建任务就创建好了,点击”立即构建“,hudson就可以自动去svn上下载最新的代码,然后完成 编译,测试,安装,部署,等一些列自动构建过程。
 
 

Maven与Hudson集成的更多相关文章

  1. 学习笔记——Maven实战(四)基于Maven的持续集成实践

    Martin的<持续集成> 相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订 ...

  2. Maven实战(四)——基于Maven的持续集成实践

    Martin的<持续集成> 相信非常多读者和我一样.最早接触到持续集成的概念是来自Martin的著名文章<持续集成>.该文最早公布于2000年9月,之后在2006年进行了一次修 ...

  3. maven,spring,mybatis集成错误

    maven,spring,mybatis集成的时候单元测试junit测试没问题,但mvn jetty:run 就报错误 错误: org.apache.ibatis.binding.BindingExc ...

  4. Spring 4 MVC+Hibernate 4+MySQL+Maven使用注解集成实例

    Spring 4 MVC+Hibernate 4+MySQL+Maven使用注解集成实例 转自:通过注解的方式集成Spring 4 MVC+Hibernate 4+MySQL+Maven,开发项目样例 ...

  5. JBoss 系列一 O O:Maven jBPM 6 集成演示样例

    概述 jBPM 6 中底层架构基于 Maven,所以我们能够非常easy的进行 Maven jBPM 6 集成演示样例,本文分三个部分: 基本原理介绍 Maven jBPM 6 集成 jBPM 6 中 ...

  6. 使用 svn+maven+jenkins(hudson)+Publish Over SSH plugins 构建持续集成及自动远程发布体系(转)

    1.安装jenkins 2.浏览器访问jenkins主页 http://192.168.0.1:8080/,点击“系统管理” 3.在插件管理中,安装Publish Over SSH插件 4.在系统设置 ...

  7. jenkins+maven+svn 持续集成环境搭建

    说明:部署传统的web应用(.war) 准备工作: (1) 系统环境:CentOS7 (2) 安装JDK:https://www.cnblogs.com/myitnews/p/11493847.htm ...

  8. Jenkins + svn + maven 构建持续集成环境搭建

    Jenkins简介 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...

  9. Maven学习(3) - Maven和Eclipse集成和构建多模块Maven项目

    最近在工作中越来越经常的用到了Maven作为项目管理和Jar包管理和构建的工具,感觉Maven的确是很好用的.而且要将Maven的功能最大发挥出来,多模块是一个很好的集成例子. 一个Maven项目包括 ...

随机推荐

  1. nlms_step_get

    module nlms_step_get(   rst ,   clk ,   nd ,      din01_i,   din01_q,   din02_i,   din02_q,      dou ...

  2. Shell编程-07-Shell中的case语句

    目录 基本语法 case示例 case语句总结     case语句相当于多分支的if/elif/else语句,而在使用case会让脚本看起来更简单工整.在case语句中,程序会将获取到的值与case ...

  3. JavaSocket简单通信

    以下介绍:简单的socket发送消息,服务的Server 相互 客户端Client,进行简单的传递消息: 服务端代码: package test; import java.io.DataInputSt ...

  4. 【WinRT】获取 Uri 中的参数(QueryString)键值对

    在控制台或者其它类型的项目中,可以添加 System.Web,使用以下代码来获取一个 Uri 中的参数 Uri uri = new Uri("http://www.cnblogs.com/h ...

  5. DBCC--CHECKDB--不可被替代的原因

    CHECKSUM不能发现的两类问题 1. 发生在内存中的页错误,如内存损坏+第三方程序修改等 2. MS SQL Server潜在BUG导致的逻辑错误,该类错误可以使用重建索引或重建约束来修复 CHE ...

  6. GitHub Android 开源项目汇总 (转)

    转自:http://blog.csdn.net/ithomer/article/details/8882236 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上.基于 ...

  7. CSS选择器分类总结

    一.选择器语法及其意义(pattern and meaning) Pattern Meaning CSS level E an element of type E 标记选择器,匹配所有标签名为E的元素 ...

  8. Cookie操作-----Selenium快速入门(十一)

    什么是cookie?顾名思义,就是饼干,小甜饼.而根据读音则是“曲奇”的意思,相信不少的人都吃过.而在网络上,cookie是指浏览器在本地的一种少量数据的存储方式.例如,我们常见的,登陆的时候有个ch ...

  9. echarts呈现数据表图形

    讲一下echarts的用法,列举了两个图表,一个是单柱图,一个是多柱图,至于饼状图,只许更改echarts的类型就好了 一.首先是要两个div,用来存放两个图表 <div class=" ...

  10. ionic4 ios调试打包

    在ionic3的时候打包上架过ios的版本,等到今天,差不多一年左右过去.做了个ionic4的app要测试打包的时候,才发现以前的东西忘的差不多了.不得不从头再来一遍,所幸的是这次看见了很多好的文章, ...