hudson linux节点,在Linux下设置Hudson进行连续集成

在Linux下设置Hudson持续集成

哈德森监督执行重复的工作,例如建立一个软件项目或由cron运行的工作。 本文介绍如何在Linux上进行设置。

1准备

1.创建目录结构如下:

/var/hudson/

|+-[.ssh]

|+-[bin]

|           +-[slave.jar]

+-[workspace]

+-[container]

+-[ci-tools]

+-[java]

mkdir -p /var /var/hudson /var/hudson/.ssh /var/hudson/bin /var/hudson/workspace /var/hudson/container /var/hudson/ci-tools /var/hudson/java

目录布局的目的是要有一个标准的目录,并在将来易于维护。

2.使用主目录/ var / hudson创建hudson用户:

useradd -d /var/hudson -c 'Hudson user' hudson

chown -R hudson /var/hudson

su hudson

wget http://www.alliedquotes.com/mirrors/apache/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.tar.gz

tar -xzf apache-tomcat-5.5.26.tar.gz

mv apache-tomcat-5.5.26 /var/hudson/container/

tomcat的bin文件夹的路径应为/var/hudson/container/apache-tomcat-5.5.26/bin 。

5.从下载JRE 5并将其安装到/var/hudson/container/jre1.5.0_15中 。

7.将hudson.war放入位于/var/hudson/container/tomcat-5.5.26/webapps的tomcat的webapps文件夹中。

8.在/ var / hudson中创建start-server.sh文件,具有以下内容:

#!/ bin / sh

设置JRE_HOME = / var / hudson / container / jre1.5.0_15

设置HUDSON_HOME = / var / hudson / workspace

设置CATALINA_HOME = / var / hudson / container / apache-tomcat-5.5.26

cd /var/hudson/container/apache-tomcat-5.5.26

sh ./bin/startup.sh&

9.在/ var / hudson上创建以下内容的stop-server.sh文件:

#!/ bin / sh

设置JRE_HOME = / var / hudson / container / jre1.5.0_15

设置CATALINA_HOME = / var / hudson / container / apache-tomcat-5.5.26

cd /var/hudson/container/apache-tomcat-5.5.26

./bin/shutdown.sh

10.打开浏览器http:// localhost:8080 / hudson查看Hudson主页。

11.将位于/var/hudson/container/apache-tomcat-5.5.26/webapps/hudson/WEB-INF文件夹下的slave.jar复制到/ var / hudson / bin文件夹中。

2安装

1.下载并安装以下插件:Active Directory.hpi,violation.hpi,emma.hpi,cobertura.hpi安装插件:转到Hudson主页>管理Hudson>管理插件,使用上传控件将插件上传到Hudson,然后重新启动Hudson。

2.使用以下信息配置Hudson的电子邮件:

一个。 SMTP服务器 :SMTP服务器主机名或IP(即prjmail.cybersoft.vn或mail.cybersoft.vn)。

b。 默认用户电子邮件Postfix :用户电子邮件的默认Postfix如@ cybersoft-vn.com和所有没有电子邮件地址的用户将默认为@ cybersoft-vn.com ie hieult将获得hieult@cybersoft-vn.com。

C。 系统管理员电子邮件地址 :此系统的管理员的电子邮件(用于在“发件人”字段中进行设置)。

d。 哈德逊网址 :电子邮件中使用的某些网址的哈德逊安装的网址。

配置Hudson:转到Hudson主页>管理Hudson> Hudson配置。

3.将JDK下载并安装到/ var / hudson / java子文件夹中。

4.通过Hudson Configuration页面将Java设置添加到Hudson。

5.将Ant下载并提取到/ var / hudson / ci-tools子文件夹中。

6.通过Hudson配置页面将Ant设置添加到Hudson。

7.将Maven下载并解压缩到/ var / hudson / ci-tools子文件夹中。

8.通过Hudson配置页面将Maven设置添加到Hudson。

3创建项目

1.去哈德森首页 > 新工作 。

2.在作业名称文本框中输入作业的名称 ,然后选择构建自由式软件项目单选按钮,然后单击确定按钮。

3.在JDK组合框中选择项目的JDK用途。

4.在“源代码管理”部分中,选择Subversion比率按钮,并输入项目的Subversion URL。

5.使用其余配置下拉,然后单击以下复选框:投票单片机 :哈德森将轮询源控制管理系统进行更改,然后触发构建(这可能会导致增加单片机系统的工作负载)。定期构建 :安装cronjob,以便每天运行构建每分钟: * * * * *每5分钟: 5 * * * *每日: @daily如果项目是Ant,则调用Ant,如果项目是Maven,则调用Ant 。归档工件 :Zip构建工件,并允许通过Hudson Web GUI进行访问。发布Javadoc :如果您为项目使用了javadoc,则可以通过Hudson Web GUI检查以发布javadoc。发布JUnit测试结果报告 :通过Hudson Web GUI发布JUnit报告。记录艾玛覆盖报告 :通过哈德森Web GUI发布艾玛报道报告。报告违规 :通过Hudson Web GUI发布代码分析报告,如PMD,CPD,Checkstyle等。电子邮件通知 :通知用户构建状态。发布Cobertura覆盖报告 :通过Hudson Web GUI发布Cobertura报告。

6.配置JUnit测试报告:如果您已经定义了与框架中指定的相同的目录,则JUnit报告应在** / build / reports / junit / ** / *。xml

7.配置Emma插件:Emma不接受正则表达式作为输入,因此如果您已经定义了与Emma报告应在“WorkspaceName”框架中指定的目录相同的目录,则需要输入emma coverage xml文件的完整路径。 > /build/reports/emma/emma.xml

8.配置Cobertura插件:如果您已经定义了框架中指定的相同目录,则Cobertura报告应在** / build / reports / cobertura / ** / *。xml

9.配置违规插件:如果您已经定义了报告应在框架中指定的目录

一个。 PMD: ** / build / reports / pmd / ** / *。xml

b。 CPD: ** / build / reports / cpd / ** / *。xml

C。 Findbugs: ** / build / reports / findbugs / ** / *。xml

d。 Checkstyle: ** / build / reports / checkstyle / ** / *。xml

10.单击保存按钮保存配置。

11.现在项目已准备就绪,单击“立即生成”按钮构建项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

转: Jenkins+Gradle实现android开发持续集成、打包

http://my.oschina.net/uboluo/blog/157483 转载于:https://www.cnblogs.com/jhj117/p/4790079.html

VMware出现配置文件 .vmx 是由VMware产品创建,但该产品与此版 VMware workstation 不兼容,因此无法使用(VMware版本不兼容问题)

首先先修改.vmx文件 修改成你VM对应的版本号 然后修改.vmdk文件 同样修改成VM对应的版本号 接下来运行虚拟机会出现 不支持客户机操作系统"centos6-64", 请从"虚拟机设置"中"选项"选项卡上的"常规"页面选择一个客户机操作系统. 按照操…

parrot linux 安装grub,parrotsec 和 kali安装系统的时候出现“executing grub-install dummy”的解决方案...

在物理机的环境下安装系统出现点问题,弄了好一会才弄出解决方法1、parrot和kali安装的时候出现了无efi分区不能继续的问题,要知道我之前安装的时候一直都是\ ; 内存; \home三个分区搞定,然后我一直以为是我刻盘的问题,这里其实解决…

asp 下拉框二级联动

<script language "JavaScript"> //js开始 var aaa;//定义aaa变量 aaa0;//aaa赋0 bb new Array();//创建bb动态数组 <%count 0 定义bb数组下标变量 do while not rs.eof%>//循环所有记录 bb[<%count%>] new Array("<% trim(rs(&quo…

打不开磁盘“D:\CentOS7\CentOS7.vmdk”或它所依赖的某个快照磁盘。

这主要是非正常关闭虚拟机造成的&#xff0c;未能锁定文件 虚拟机为了防止有多虚拟机共用一个虚拟磁盘&#xff08;就是后 缀为.vmdk那个文件&#xff09;造成数据的丢失和性能的削弱&#xff0c;每次启动虚拟机时会给每个虚拟磁盘加一个磁盘锁&#xff08;也就是后缀为.lck的那…

qt c语言socket,c – Qt双向客户端服务器使用QTcpSocket和QTcpServer

默认情况下,QTcpSocket是异步的,因此当您调用connectToHost并在相同的上下文中写入时,将不会发送,因为套接字未连接.你应该改变你的“客户端”代码&#xff1a;void TopLevelComms::connect(){tcpSocket->connectToHost(hostAddress,QIODevice::ReadWrite);if(tcpSocket->…

【转】 代理模式

原文链接&#xff1a;http://layznet.iteye.com/blog/1182924一、代理概念 为某个对象提供一个代理&#xff0c;以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口&#xff0c;这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、…

oracle之单行函数之多表查询值之课后练习

26. 多表连接查询时, 若两个表有同名的列, 必须使用表的别名对列名进行引用, 否则出错!27. 查询出公司员工的 last_name, department_name, cityselect last_name, department_name, cityfrom departments d, employees e, locations lwhere d.department_id e.department_id …

行末没有空格c语言,新人提问:如何将输出时每行最后一个空格删除

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼如何将每行最后一个空格删除&#xff0c;使矩阵只有数字间有空格&#xff0c;没有多余空格&#xff1f;#include#includeint main(){int i,j,k,m,n,x,h,y;int a[15][15]{0};while(scanf("%d",&i)){k1;for(n1;n<i;…

Core Animation

关键字 1.Core Animation的核心类是CALayer,通过对其属性进行配置可以展现不同的外观&#xff0c;这些属性包括位置&#xff0c;尺寸&#xff0c;图片内容&#xff0c;背景色&#xff0c;边界&#xff0c;阴影&#xff0c;以及角半径。 CATextLayer *textLayer;textLayer [CAT…

oracle之单行函数之分组函数

--分组函数 select avg(salary),max(salary),min(salary),sum(salary) from employees 运行结果 --判断大小 select max(last_name),min(last_name),max(hire_date),min(hire_date) from employees 运行结果 --计数 select count(employee_id),count(last_name),count(hire_da…

LeetCode 98. Validate Binary Search Tree

原题链接在这里&#xff1a;https://leetcode.com/problems/validate-binary-search-tree/ 题目&#xff1a; Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contains only n…

oracle之单行函数之分组函数之课后练习

33. 查询 employees 表中有多少个部门select count(distinct department_id)from employees 34. 查询全公司奖金基数的平均值(没有奖金的人按 0 计算)select avg(nvl(commission_pct, 0))from employees 35. 查询各个部门的平均工资--错误: avg(salary) 返回公司平均工资, 只…

谭浩强c语言规范化的指数形式,C语言程序设计谭浩强第四期末复习重点.docx

1.1.问题分析2.设计算法3.编写程序4.对源程序进行编辑、编译和连接5.运行程序&#xff0c;分析结 6.编写程序文档第一章程 序 设 计 和C 语 言1.1.什么是计算机程序程序&#xff1a;一组计算机能识别和执行的指令。只要让计算机执行这个程序&#xff0c;计算机就会自动地、有条…

OPT和LRU页面置换算法C语言代码,页面置换算法模拟——OPT、FIFO和LRU算法.doc

实用标准文案精彩文档操作系统实验报告页面置换算法模拟——OFT、FIFO和LRU算法班级&#xff1a;2013级软件工程1班学号&#xff1a;X X X姓名&#xff1a;萧氏一郎数据结构说明&#xff1a;Memery[10]物理块中的页码Page[100]页面号引用串Temp[100][10]辅助数组Void print(uns…

使用Enterprise Architecture绘制10种UML画画

UML绘制10种课程要求UML画画&#xff0c;选Enterprise Architecture作为一个绘图工具&#xff0c;每一个草图必须是网上找教程&#xff0c;我觉得很麻烦&#xff0c;还有一些数字并没有找到详细的教程。在我自己找一个绘图方法&#xff0c;今天总结使用Enterprise Architecture…

RocketMQ初步应用架构理论

RocketMQ初步应用架构理论 写给RocketMQ架构应用入门&#xff0c;内容涉及它的设计机理以及推到出来的应用注意事项&#xff0c;入门人员请看。 稍微涉及技术细节&#xff0c;留以我设计中间件时参考&#xff0c;将来整理深度文档时会抽取走&#xff0c;入门人员可以无视。 以下…

android程序的入口点,常见android面试基础题

2015-11-21 06:30:02阅读( 1344 )1. Intent的几种有关Activity启动的方式有哪些&#xff0c;你了解每个含义吗这里Android123提示大家&#xff0c;Intent的一些标记有FLAG_ACTIVITY_BROUGHT_TO_FRONT、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACT…

转:pysqlite笔记

这是一篇老笔记&#xff0c;原来是放在旧博客上 的&#xff0c;最近因为公司内部一个小东西&#xff0c;想使用简单点的数据库来存储数据&#xff0c;就想起用SQLite来做&#xff0c;上网搜索一些教程。竟然发现&#xff0c;原来一年多前&#xff0c;我也学过一阵 子&#xff0…

android页面布局更改,使用setContentView的方式更换布局文件从而更换界面

使用转换Activity的布局文件的方式&#xff0c;从而达到转换android页面的目的(这里没有使用Intent)&#xff1a;程序很简单&#xff0c;摆一个大概出来&#xff1a;package com.seed.lee.setContentView;import android.app.Activity;import android.os.Bundle;import android…