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.14 loj#6003. 「网络流 24 题」魔术球(最大流)

    传送门 网络流好题. 这道题可以动态建图. 不难想到把每个球iii都拆点成i1i_1i1​和i2i_2i2​,每次连边(s,i1),(i2,t)(s,i_1),(i_2,t)(s,i1​),(i2​, ...

  2. 2018.08.11 洛谷P3224 [HNOI2012]永无乡(线段树合并)

    传送门 给出n个带点权的点,支持连边和查询连通块第k大. 这个貌似就是一道线段树合并的裸板啊... 代码: #include<bits/stdc++.h> #define N 100005 ...

  3. hdu-1181(bfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181 思路:bfs,就是每次找到匹配麻烦一点,注意如果结尾和开头相同,就不算. #include< ...

  4. android apk签名原理

    //这个md5跟腾讯的对应 public Signature getPackageSignature( ){ Context context=getContext(); String packageN ...

  5. json、JSONObject、JSONArray的应用

    type.java package jiekou.duixiang; import java.text.ParseException;import java.text.SimpleDateFormat ...

  6. (最短路) Heavy Transportation --POJ--1797

    链接: http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS   Memory Limit: 30000K To ...

  7. 百度离线地图,web

    1.首先获取百度 JavaScript API 首先用浏览器打开 http://api.map.baidu.com/api?v=1.3 其中 http://api.map.baidu.com/gets ...

  8. Python学习-19.Python的Http模块

    模拟 http 请求是比较常见的一种需求,在 Python 中,使用 http 模块操作. import http.client # 创建 Http 连接. http = http.client.HT ...

  9. Jersey构建Restful风格的webservices

    最近一直在搞老项目的开发工作,很少写博文了.听了两位阿里巴巴大牛的讨论,决定试试用restful风格的webservices看看. 这里用的是Jersey这个框架,刚开始弄,有点麻烦,只能到处查资料. ...

  10. Winform 搭建http服务器

    using System; using System.Collections; using System.IO; using System.Net; using System.Net.Sockets; ...