热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Hudson持续集成服务器(Windows篇)

Hudson服务器的配置还是比较简单的。每个事项也不需要去记,可以直接点击右边的“?”按钮就会显示此项的意义。我是搭载了VS2010的hudson服务器一、安装与配置1、首先可以到官网http:hudson-ci.org下载hudson.war,安装jre的环境就可以跑起来,如果你

Hudson服务器的配置还是比较简单的。每个事项也不需要去记,可以直接点击右边的“?”按钮就会显示此项的意义。我是搭载了VS2010的hudson服务器

一、安装与配置

1、首先可以到官网http://hudson-ci.org/

下载hudson.war,安装jre的环境就可以跑起来,如果你是编译java的项目,请安装jdk。由于hudson本身内置http服务器,因此可以不安装tomcat。我搭载的hudson就没有放到tomcat下,而是直接安装成windows服务自启动即可。如果还没有安装成windows服务,可以通过命令行运行hudson。比如把下载回来的 Hudson.war 放在 D:\Hudson 目录下,在命令行下用 java -jar Hudson.war 就可以把 Hudson 开起来。但是这样的话 Hudson 会自动把它的 home 目录设定到当前用户的 home 目录下(windows下就是系统盘--->当前用户--->.hudson目录),所以我们可以在启动 Hudson 的时候手工指定一下 Hudson 的 home 目录:java -DHUDSON_HOME=D:\Hudson -jar hudson.war。启动 Hudson 之后打开浏览器,访问 http://localhost:8080 就可以看到 Hudson 的 界面了

2、安装MSBuild plugin,在插件管理界面可以找到,勾选安装即可。安装好 MSBuild 后要设置一下,进入系统设置,找到 MSBuild 两个字段:name 和 Path to msbuild.exe。name 填写一个有意义的如MSBuild-msvc2010等,新建任务job 设置的时候有一项选择MSbuild之后需要选择这个name,Path to msbuild.exe 就是你机器上 MSBuild.exe 的绝对路径,比如 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe。这里需要注意的是,VS2010一定要选v4.0.30319(或者你的更新,但是应该是4.0以上),3.5及其以下是VS2008及其以下版本使用的,选错了会编译失败的。

3、如果你想将SVN服务器跟hudson一起构建,安装了SVN服务器和客户端之后,接下来要设置一下 SCM。我没有安装SVN服务器,因为我们的SVN服务器之前是搭好在另一台服务器的,这次只是搭载Hudson服务器,在hudson上安装SVN客户端,之后会让hudson自动从SVN服务器check out代码进行编译。

4、hudson配置smtp服务器,记得点击advance添加用户名和密码。对于gmail的用户记得勾选校验并设置gmail端口(将来的job会以此用户给指定的项目组成员发送邮件)。邮件通知里的 Hudson URL 默认是 http://localhost:8080/,改成主机名,否则收到 build 结果通知邮件以后点击链接访问localhost 是无意义的。

5.hudson是个插件式的服务器,需要什么可以自行安装插件。ms的系统这边我们是安装了 disk plugin(检测磁盘的容量),cppcheck plugin(静态代码检查,记得安装plugin完了,系统上还要安装cppcheck报告生成工具程序,cppcheckplugin最后也只是调用系统上的这个工具用来显示检查的结果),doxygen plugin(同样需要安装doxygen报告生成工具,plugin也是使用工具生成的文档进行显示)。在new job中对cppcheck和doxygen的路径设置都是针对hudson workspace的相对路径,这点需要注意。

关于doxygen还想多记录一些,本身按照doxygen的帮助文档,配置还是较为简单的。而想要更好的生成文档,还需要结合其他的工具。

graphviz这个工具是相当棒的,用于生成类图,交互图,各种咆哮图,用了你就知道了。还有就是请严格(其实doxygen支持各种风格的注释,说严格有点过了)按照注释风格书写代码注释。

二、创建 Hudson build job

在 Hudson 的 home 目录里有一个 jobs 的目录,里面存放着所有的 build job,在具体job 的目录下有一个 workspace 文件夹,里面存放的就是从 SCM 里 check out 出来的代码,你可以自己指定 workspace 的位置。

1、在 Hudson 界面里新建任务,然后选 Build a free-style software project 这个类型。(其他类似暂时没有用过)

2、点击 Advanced Project Options 可以设置一些不常用的高级选项,如 Use custom workspace 就可以指定 workspace 的位置。这个选项可以让你把代码 check out 到一个特定名字的文件夹里。假设你想把 code check out 到一个叫 branch 的文件夹里,可以在 Use custom workspace 里设置 D:\Hudson\jobs\foo\workspace\branch。Hudson 内部定义了一些环境变量,使用这些变量可以增加 job settings 的灵活性,比如上面这个目录可以写成:$HUDSON_HOME\jobs\$JOB_NAME\workspace\branch,这样如果你以后变动了 Hudson 的安装位置就可以不用重新设置 job settings 了。有关 Hudson 的环境变量可以访问http://wiki.hudson-ci.org/display/HUDSON/Building+a+software+project#Buildingasoftwareproject-HudsonSetEnvironmentVariables。一但在这里设置了 custom workspace,那么再使用 $WORKSPACE 这个环境变量拿到的就是这个 custom workspace 的位置,而不是默认的位置。还有类似于build信息的保存期限的,有两种方式,一种是以时间为期限,如设置7天,另一种是数量,如保存10次构建过程信息,其他高级选项可通过对应右边的“?”查看配置。

3、选中 Build Triggers 里的 Build periodically 就可以让 Hudson 在特定的时间自动触发一个 build,如你想让这个 build 在每天凌晨 0 点自动触发,可以写成 0 0 * * *。具体的语法可以点击界面右边的“?”按钮,会显示出很详细的细节。

4、poll scm 根据检测的更新去执行构建,语法与3、相同

5、在 Build 节里点 Add build step,选 Build a Visual Studio project or solution using MSBuild,然后来设置 MSBuild。有 3 个 field 需要设置:MsBuild Version 这里选我们在系统设置设置的 MSBuild 的 name,如果你机器上有多个版本的 MSBuild,这里可以选择合适的版本。MsBuild Build File 这里填 .sln 或者 .vcproj 文件的位置。Command Line Arguments 这里填需要传递给 MSBuild 的命令行参数。比如你要编译 test.sln 里的 p1,p2,p3 这三个工程,如果写成这样:/p:COnfiguration=Release /t:p2:Rebuild,就只有p2会被编译,但是顺序必须是 2->3->1,那么可以传这个参数:/p:COnfiguration=Release /t:p2;p3;p1,如果想做一个 clean build,/p:COnfiguration=Release /t:Clean;p2;p3;p1。之后在Add build step里面新建两个windows的bat,用于执行cppcheck和doxygen,cppcheck的bat类似与cppcheck --xml E:\hudson\Source 2 > E:\hudson\Source\CppcheckReports.xml,doxygen的bat类似于 doxygen doxyfile(doxyfile为配置文件的名字),job最下面配置post build actions的时候就可以勾选cppcheck,doxygen了,对应的路径都是填写相对workspace的路径。这个需要注意

5、设置邮件通知,之后保存,一个job就创建好了,可以点击立即生成来启动一次构建。


推荐阅读
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文总结了淘淘商城项目的功能和架构,并介绍了传统架构中遇到的session共享问题及解决方法。淘淘商城是一个综合性的B2C平台,类似京东商城、天猫商城,会员可以在商城浏览商品、下订单,管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。商城的架构包括后台管理系统、前台系统、会员系统、订单系统、搜索系统和单点登录系统。在传统架构中,可以采用tomcat集群解决并发量高的问题,但由于session共享的限制,集群数量有限。本文探讨了如何解决session共享的问题。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
author-avatar
golanger
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有