随笔分类 - BuildRelease
摘要:一 Jenkins Master/Slave架构 Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行。一个master可以关联多个slave用来为不同的job或相同的job的不同配置来服务。 当job被分配到slave上运行的时候,此时master和slave其实是建立的双向字节流的连接,其中连接方法主要有如下几种: 1)master通过ssh来启动slaveJenkins内置有ssh客户端实现,可以用来与远程的sshd通信,从而启动slave agent。这是对*
阅读全文
摘要:作为slave的Linux机器为centos系统。1) Linux 的 Slave机器设置 创建jenkins用户sudo /usr/sbin/useradd -m jenkins -d /home/jenkins;查看jenkins用户及组的信息id jenkins : uid=506(jenkins) gid=506(jenkins) groups=506(jenkins) ;使用sudo /usr/bin/passwd jenkins来设置用户jenkins的密码为0;切换到用户jenkins环境下su - jenkins;确保java安装正确:java --version;确保ss..
阅读全文
摘要:参考:https://wiki.jenkins-ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines一 创建新的Slave注意Jenkins中slave称为note。 所以下面文章中的slave和node指的是一回事。1)在Manage Jenkins-->Manage Nodes -->New Node下:输入Node Name,且选择Dumb Slave作为Slave的类型,然后OK。 2)在Slave的配置页面,输入如下:*executors的数量,1或多个;*输入Slave
阅读全文
摘要:1 修改jenkins的根目录,默认地在C:\Documents and Settings\AAA\.jenkins 。.jenkins ├─jobs│ └─JavaHelloWorld│ ├─builds│ │ ├─2011-11-03_16-48-17│ │ ├─2011-11-03_16-49-05│ │ ├─2011-11-03_16-49-29│ │ ├─2011-11-03_17-01-49│ │ └─2011-11-03_17-11-42│ └─workspace│ ├─build│ │ ├─classes│ │ │ └─oata│ │ └─jar│ └─src│ └─oata├
阅读全文
摘要:注意:我们知道Jenkins通过master/slave来支持分布式的job运行,这里的JavaHelloworld运行在master,即Jenkins所在的机器。一 Java的HelloWorld程序 Ant构建脚本:c:\JavaHelloWorld\build.xml <projectname="HelloWorld"basedir="."default="main"><propertyname="src.dir"value="src"/><propertyn
阅读全文
摘要:1 JenkinsJenkins由以前的hudson更名而来。Jenkins的主要功能是监视重复工作的执行,例如软件工程的构建或在cron下设置的jobs。具体地:*软件的持续构建和测试,此时Jenkins与CruiseControl或DamageControl相似。本质上提供了一个易于使用的持续集成系统,使得开发人员更容易地将改变集成到工程中,使得用户更容易获得一个新的build。自动化,持续的构建提高了软件开发的效率。*监视外部运行的job的执行,例如cron jobs或procmail jobs,即使这些jobs是运行在远程的机器上。例如,对于cron,你将会收到email包含job的o
阅读全文
摘要:Ant是软件构建工具,Maven的定位是软件项目管理和理解工具。Maven除了具备Ant的功能外,还增加了以下主要的功能:1)使用Project Object Model来对软件项目管理;2)内置了更多的隐式规则,使得构建文件更加简单;3)内置依赖管理和Repository来实现依赖的管理和统一存储;4)内置了软件构建的生命周期; 一 POM(Project Object Model)与项目管理每一个Maven工程都包含一个pom.xml文件,其他存储了该工程相关的信息,从而达到一定的项目管理的功能。例如包含了工程的配置,缺陷跟踪系统信息,工程的组织,许可协议,工程的路径,依赖等信息。典型的.
阅读全文
摘要:一 <path/> 和 <classpath/>你可以用":"和";"作为分隔符,指定类似PATH和CLASSPATH的引用。Ant会把分隔符转换为当前系统所用的分隔符。 当需要指定类似路径的值时,可以使用嵌套元素。一般的形式是 <classpath> <pathelement path="{classpath}"/> <pathelement location="lib/helper.jar"/> </classpath> location属
阅读全文
摘要:一 Ant命令行ant [options] [target [target2 [target3] ...]] Options: -help print this message -projecthelp print project help information -version print the version information and exit -quiet be extra quiet -verbose be extra verbose -debug print debugging information -emacs produce logging information w
阅读全文
摘要:一 Task的命令行参数 有些task可接受参数,并将其传递给另一个进程。为了能在变量中包含空格字符,可使用嵌套的arg元素。 Attribute Description Required value 一个命令行变量;可包含空格字符。只能用一个 line 空格分隔的命令行变量列表。 file 作为命令行变量的文件名;会被文件的绝对名替代。 path 一个作为单个命令行变量的path-like的字符串;或作为分隔符,Ant会将其转变为特定平台的分隔符。 例子 <arg value="-l -a"/> 是一个含有空格的单个的命令行变量。 <arg line=&
阅读全文
摘要:一 Ant 介绍Ant是构建工具,用来实现软件的自动化的构建,类似于VisualStudio的project文件,Linux上构建C++的makefile,Ant通常用来构建Java程序。 Ant是基于XML的文件,所以更容易阅读;Ant是用Java实现的,本身支持跨平台;Ant基于插件的方式开发,本身内置了常用的大部分的插件,而且第三方的扩展也很容易;Ant除了用来构建Java程序,也可以用来构建其他的任何程序,例如C++等。 和Ant类似,能够支持跨平台的其他的一些非常优秀的构建工具有Maven,Scons,CMake等。二 Ant的配置 1)安装jdk,设置JAVA_HOME=D:\Ja
阅读全文
摘要:转自: http://spiritfrog.iteye.com/blog/448578 + http://magnet2008.iteye.com/blog/586578 备份策略============== svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令、rsync命令。 笔者曾经用 rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库大部分都不可用,因此最好是用svn本身提供的功能来进行备份。 优缺点...
阅读全文
摘要:使用svnsync镜像版本库转自:http://seraya.iyublog.com/2010/03/15/%E4%BD%BF%E7%94%A8svnsync%E9%95%9C%E5%83%8F%E7%89%88%E6%9C%AC%E5%BA%93/术语 为了更好的讨论svnsync,而不会陷入混淆,在继续之前我们应当建立一些术语: 主(Master): 将要通过svnsync被同步的活动读/写版本库。镜像(Mirror): 将要与master通过svnsync同步的只读版本库。 总揽 Subversion 1.4发布之后,svnsync工具就成了标准Subversion的一部分,可以用”一.
阅读全文
摘要:在service进程中每隔5分钟使用p4 monitor命令来检测perforce是否可连接,如果不可连接则发送email给管理员。 完!
阅读全文
摘要:一 分布式软件开发环境对于跨国的软件公司,经常会出现同一软件的开发团队分布在世界各地,我称这种开发环境为分布式的软件开发环境。如下图:二 问题及方法要使分布式的团队能够高效地运作,我们通常会使用额外的工具或方法来避免距离和网络的影响,一些经验可能有所帮助:1)公司内部使用sharepoint,wiki来进行document的共享;2)使用netmeeting,livemeeting,communicator来进行会议时desktop的共享;3)使用polycom,roundtable或telepresence来进行多方的电话和视频会议;4)开发人员使用支持分布式的source control
阅读全文
摘要:一 p4的API支持几乎所有的常用的语言1)查看p4 API 主页: http://www.perforce.com/perforce/loadsupp.html#api(包含下载 和 p4script.pdf) 2)支持几乎所有的语言: Perforce C/C++ API Perforce Java API Perforce Perl API Perforce Ruby API Perforce Python API Perforce PHP API Perforce Objective-C API P4COM, a COM Interface to the Perforce C++ AP
阅读全文
摘要:来自Mozilla build tools下的脚本: 一 guess-msvc.bat REM-*-Mode:fundamental;tab-width:8;indent-tabs-mode:1-*-@ECHOOFFsetCYGWIN=ifnotdefinedMOZ_NO_RESET_PATH(setPATH=%SystemRoot%\System32;%SystemRoot%;%SystemRoot%\System32\Wbem)REMifDISPLAYisset,rxvtattemptstoloadlibX11.dllandfailstostartREM(seemozillabug376.
阅读全文
摘要:一 Mozilla Build Tools Mozilla 开源组织拥有很多伟大的跨平台产品,例如,Firefox, Thunderbird, Mozilla Suite / SeaMonkey, XULRunner, Sunbird, standalone Composer, standalone XPCOM, and standalone XPConnect。其中大部分的都是使用Mozilla build system来完成build的。Mozilla build system是基于GNU Make 和 autoconf的。在Mozilla,make用来编译libraries和exec..
阅读全文
摘要:一 SCons SCons是下一代的开源的软件构建工具。 主页:http://www.scons.org/ 参考:http://www.angelfire.com/linux/skip/Articles/SConsExamples.html 二 Scons特点 特点如下: 1)配置文件是python脚本(使用功能强大的真实的编程语言解决build的问题)。 2)内置的C/C++/Fortran的可信的,自动的依赖分析,不在需要make depend或make clean来得到所有的依赖关系。依赖关系分析很容易使用用户定义的dependency scanner扩展到其他的语言和文件类型。 ...
阅读全文
摘要:一 CMake CMake 是一个跨平台的构建工具,通过一次的cmake script的编写,能够生成常见平台常见IDE的project文件或maikefile文件,例如生成visual studio project文件,eclipse project文件,makefile等;同时相对于linux的automake工具生成makefile的过程相对简单。 主页:http://www.cmake.org/ 参考:http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html Eclipse 插件:http://www.ct...
阅读全文