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.14 codechef Milestone(随机化算法)

    传送门 由于存在不超过7条直线可以覆盖超过所有的点. 所以如果我们随机选点的话(每次随机两个) 那么得到的解恰好为最优解的概率是149" role="presentation&qu ...

  2. 打开子页面及刷新父页面 window.open window.opener.reload()

    //打开子页面 var url=children_url;window.open(url) //刷新parent页面 var url=parent_urlfunction refresh(url){  ...

  3. java常用设计模式一:单例模式

     1.饿汉式 package singleton.demo; /** * @author Administrator * @date 2019/01/07 */ public class Single ...

  4. IntelliJ IDEA 2017版 开发SpringBoot的全局配置文件使用

    一.全局配置文件 描述:     Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径 ...

  5. 一种基于Redis的10行代码实现IP频率控制方法

    优点:可支持海量访问的频率控制,只需要增加Redis机器,单个Redis节点(只占用一个cpu core)即可支持10万/s以上的处理. 基于IP频率限制是种常见需求,基于Redis可以十分简单实现对 ...

  6. Node.js使用MySQL的连接池

    使用Nodejs+MySQL肯定比PHP和MySQL的组合更适合做服务器端的开发. 使用Nodejs你会从他的异步行为中获益良多.比如,提升性能,你无须在从已有的MySQL数据库迁移到其他的NoSQL ...

  7. STL中的Vector相关用法

    STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...

  8. MDX示例:求解中位数、四分位数(median、quartile)

    一个人力资源咨询集团通过网络爬虫采集手段将多个知名招聘网站上发布的求职和招聘等信息准实时采集到自己的库里,形成一个数据量浩大的招聘信息库,跟踪全国招聘和求职的行业.工种.职位.待遇等信息,并通过商业智 ...

  9. unusedjs

    查看js的有效使用情况: https://github.com/gmetais/unusedjs Installation You need to open your console and writ ...

  10. python——回文函数(reversed)

    回文数:正向排列与反向排列所得结果是相等的(即从左到右和从右到左的结果是相等的),例如:“123321”,“0000”等. reversed函数:反转一个序列对象,将其元素从后向前颠倒构建成一个新的迭 ...