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. 2018.09.19 atcoder Snuke's Subway Trip(最短路)

    传送门 就是一个另类最短路啊. 利用颜色判断当前节点的最小花费的前驱边中有没有跟当前的边颜色相同的. 如果有这条边费用为0,否则费用为1. 这样跑出来就能ac了. 代码: #include<bi ...

  2. 解决Jedis链接报超时异常和connection reset异常的方法

    一.链接池配置 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig" ...

  3. Criteria查询

    1.Criteria表达式 Criteria c=session.createCriteria(User.class); List result=c.list(); Iterator it=resul ...

  4. php PDO mysql

    php PDO写法连接mysql: $db=new PDO("mysql:host=localhost;dbname=sql","root","roo ...

  5. mysql中要根据某个逗号分割的字符串关联查询另一张表的数据

    首先观察下面的查询 select * from company where f_id in ('210','205','208') select * from company where f_id i ...

  6. 玩转Nodejs的集群

    在Nodejs中使用集群还是不容易的.Javascript的单线程属性让nodejs下的应用很难使用现代机器的多核特性.比如下面的代码实现了一个http服务器的主干部分.这部分代码只会执行在一个线程上 ...

  7. 在 Java 中使用 protobuf

    在 Java 中使用 protobuf 从 https://github.com/google/protobuf/releases 下载编译器,并设置环境变量. 创建java项目添加protobuf- ...

  8. Spring MVC 的@RequestParam注解和request.getParameter("XXX")

    在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取.这里主要 ...

  9. hibernate 一对多,由谁维护性能最优

    举例如下 Customer类: public class Customer { private int id; private String name; private Set orders = ne ...

  10. Ubuntu14.04下Pycharm3.4 字体渲染

    在ubuntu下搭建了django的开发环境,搭建过程十分简单,Pycharm的安装更简单,下载tar包解压并执行bin目录下的脚本即可,但是看着那个字体真心不爽.于是开始搜索调教. 1.安装打了渲染 ...