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.10.15 bzoj4445: [Scoi2015]小凸想跑步(半平面交)

    传送门 话说去年的省选计算几何难度跟前几年比起来根本不能做啊(虽然去年考的时候并没有学过计算几何) 这题就是推个式子然后上半平面交就做完了. 什么? 怎么推式子? 先把题目的概率转换成求出可行区域. ...

  2. 2018.07.04 POJ 1113 Wall(凸包)

    Wall Time Limit: 1000MS Memory Limit: 10000K Description Once upon a time there was a greedy King wh ...

  3. 着重基础之—MySql Blob类型和Text类型

    着重基础之—MySql Blob类型和Text类型 在经历了几个Java项目后,遇到了一些问题,在解决问题中体会到基础需要不断的回顾与巩固. 最近做的项目中,提供给接口调用方数据同步接口,传输的数据格 ...

  4. javascript 字符数组转换成以逗号隔开的字符串

    var ids = [];angular.forEach(pulsarServers,function (server) { ids.push(server.id);});ids = ids.join ...

  5. WriteableBitmap(三) 扩展

    backbuffer使用您在创建WriteableBitmap时指定的像素格式,还有一个BackBufferStride属性,您可以使用它来创建一个合适的存储映射函数. 添加一些方法来设置和获取特定情 ...

  6. sqlite3数据库,增删改查

    搜索libsql //由于文件读写,归档,NSUserDefault,做持久存储的时候,是一个覆盖的过程,效率太低,更多的时候使用数据库来做持久化存储         //鉴于手机的硬件配置,使用轻量 ...

  7. B样条参数曲线学习(1)

    B样条参数曲线学习 Bezier曲线有许多优越性,但有两点不足: (1) 特征多边形的顶点个数决定了Bezier曲线的阶次,并且在阶次较大时,特征多边形对曲线的控制将会减弱: (2) Bezier曲线 ...

  8. APUE(5)---标准I/O库 (3)

    十.定位流 #include <stdio.h> long ftell(FILE *fp); //若成功,返回当前文件位置指示:若出错,返回-1L int fseek(FILE *fp, ...

  9. Fading Like a Flower

    Fading Like a Flower In a time where the sun descends alone 伴着落日孤独的脚步 I ran a long long way from hom ...

  10. PHP Functions - arsort()

    <?php $characters = array('a','b','c','d','e','f'); arsort($characters); print_r($characters); /* ...