`
aswang
  • 浏览: 850843 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

基于hudson搭建持续集成服务器

    博客分类:
  • java
 
阅读更多

 1、环境准备

     操作系统:SUSE11
     服务器:Tomcat6.0.20
     Hudson:hudson-1.398.war(下载地址:http://java.net/projects/hudson/downloads/download/war/hudson-1.398.war)

2、搭建hudson服务器
     其实搭建服务器的过程很简单,在suse11下安装tomcat,然后将hudson-1.398.war改名为hudson.war,并拷贝到tomcat的webapps目录下,这样启动tomcat服务器,访问地址:http://localhost:8080/hudson,如果能够看到hudson页面:(我这边是已经在hudson上建立了2个项目),则说明服务器已经启动成功。


 


3、hudson服务器配置
     点击上图左侧的系统管理,进入到系统管理页面:


 


     系统设置,主要是设置一些全局参数,比如一些变量、jdk安装目录、ant安装目录等。
     读取设置,这个是在你修改了系统参数之后,不需要重启服务器,选择读取设置就可以了。
     管理插件,在这里可以查看hudson可以使用的插件,然后选择需要的插件安装,这里有一个插件在后面用到,就是tomcat远程部署插件。

     点击系统设置,进入设置页面:
     a、设置jdk,别名随便设置,如jdk1.6.0_22
          JAVA_HOME ,就是java的安装目录:/usr/java/jdk1.6.0_22/
     b、设置ant,我这里使用ant来构建项目的,你也可以选择maven,那这里就设置maven相关参数
          Name,设置ant的名称:apache-ant-1.8.1
          ANT_HOME,ant的安装目录:/usr/apache-ant-1.8.1
     c、设置邮件通知,这里可选,但是为了及时获取构建消息,还是设置一下。
     设置完毕之后,别忘了点击保存来保存配置。

3、新建项目,在首页点击新建任务,
     


 
     
     任务名称,填写你的项目名称,或者填写具有意义的名字,下面选择根据需要,我选择构建一个自由风格的软件项目,然后ok进入到任务设置页面。
     在任务设置页面,需要进行以下设置:Source Code Management、Build Triggers、Build、Post-build Actions
     Source Code Management :设置源代码管理工具,这里选择 Subversion,下面的Modules设置项目的svn地址即可 如http://127.0.0.1/svn/svndata/trunk/demo
                                                    这里需要注意的一点是,下面的Local module directory (optional) 要把“.”去掉,避免后面从svn库取项目源代码的时候,不包含项目目录。
                                                    最后勾中User  Update。
     Build Triggers:这里设置自动构建的时机以及频率,根据需要设置,我选择的是Poll SCM, Schedule :*/30 * * * * 意思是每30分钟检查一次svn库,如果有更新就进行一次构建。

     Build:Invoke Ant,这里就可以选择之前配置的ant了。
     
     Post-build Actions: 这里是设置在构建完毕之后,执行什么操作,因为我安装了Findbugs插件,所以这里会有Publish FindBugs analysis results这个选项,
                                        FindBugs results 这里填写findbugs生成的findbugs.xml文件路径,相对于~/.hudson/jobs/demo/workspace的。

     如果安装了tomcat的远程部署插件,可以在下面设置参数:
     


 

     到此为止,项目的配置就结束了,但是项目还不能被自动构建,还需要在我们的项目中添加ant的build.xml文件。这里给出一个示例脚本:
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="findbugs" name="office">
      <property environment="env" />
      <property name="debuglevel" value="source,lines,vars" />
      <property name="findbugs.home" value="/usr/findbugs-1.3.9" />

      <property name="debug" value="off" />
      <property name="optimize" value="on" />
      <property name="deprecation" value="on" />

      <property name="target" value="1.5" />
      <property name="source" value="1.5" />

      <property name="build" value="build" />
      <property name="src" value="src" />

      <path id="classpath">
            <fileset dir="${build}/WEB-INF/lib">
                  <include name="**/*.jar" />
            </fileset>
            <!--<pathelement location="lib/"/>-->
      </path>

      <target name="clean">
            <delete dir="${build}" />
      </target>

      <target name="init">
            <mkdir dir="${build}" />
            <mkdir dir="${build}\WEB-INF" />
            <mkdir dir="${build}\WEB-INF\classes" />

            <copy todir="${build}">
                  <fileset dir="${basedir}\WebRoot">
                        <include name="**" />
                  </fileset>
            </copy>
      </target>

      <target name="complie" depends="init">
            <javac srcdir="${src}" destdir="${build}/WEB-INF/classes">
                  <classpath refid="classpath" />
            </javac>
            <copy todir="${build}/WEB-INF/classes">
                  <fileset dir="${src}">
                        <include name="**/*.xml" />
                        <include name="**/*.properties" />
                  </fileset>
            </copy>
      </target>

      <target name="build" depends="clean,init,complie">
            <war warfile="${build}/demo.war" webxml="${build}/WEB-INF/web.xml">
                  <lib dir="${build}/WEB-INF/lib" />
                  <classes dir="${build}/WEB-INF/classes" />
                  <fileset dir="${build}" />
            </war>
      </target>

      <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" />
      <target name="findbugs" depends="build">
            <findbugs home="${findbugs.home}" output="xml" outputFile="${build}/findbugs.xml">
                  <auxClasspath>
                        <fileset dir="${build}/WEB-INF/lib">
                              <include name="*.jar" />
                        </fileset>
                        <fileset dir="${findbugs.home}/lib">
                              <include name="*.jar" />
                        </fileset>
                  </auxClasspath>
                  <sourcePath path="${src}" />
                  <class location="${build}/WEB-INF/classes" />
            </findbugs>
      </target>
</project>
     
     可以简单的把这个脚本拷贝过去,然后修改相应的参数就可以使用了。

     这样,在首页点击项目后面的构建按钮(每行最后一个)就可以进行构建了:


 

     构建过程大体是这样的,hudson会通过svn从svn库中取得项目源代码到hudson所在的服务器的工作空间(一般是在当前登录用户目录下的.hudson/jobs/项目名称/workspace/目录下),然后调用项目中的ant脚本文件(build.xml)进行构建,根据build.xml文件的配置,会生成相应的文件,比如上面的脚本就会在build目录下生成war包。
     如果你的项目还安装了tomcat远程部署插件并且做了配置,那么在生成war包之后,hudson将进行远程部署,即通过tomcat中的manager应用将war部署到tomcat中。
     备注:tomcat要开始远程部署,首先要保留webapps目录下的manager应用,其次,修改tomcat配置文件:tomcat-users.xml,在里面添加角色manager以及该角色的用户,配置代码如下:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>

     如果在build.xml文件里面配置了findbugs任务,那么构建还会生成findbugs.xml文件,findbugs插件会生成相应的报告。

     备注:findbugs插件的安装,下载地址:http://findbugs.sourceforge.net/downloads.html
     然后解压到某个目录即可,然后在build.xml文件里面配置findbugs的路径即可。

这样,支持持续构建、findbugs以及远程部署的hudson服务器搭建完毕。
     



 

  • 大小: 83.8 KB
  • 大小: 78.6 KB
  • 大小: 92.1 KB
  • 大小: 28.7 KB
  • 大小: 27.5 KB
0
2
分享到:
评论
1 楼 520920 2015-07-01  
你好:
    我在搭建的时候出现了JDK版本问题,但是我修改成1.5版本后仍然报错
我截图传不上来,我把文字粘贴下,望大神给点指点
prepare:
    [mkdir] Created dir: D:\Hudson\jobs\iaf-ibatis\workspace\target\classes

compile.jar:
    [javac] D:\Hudson\jobs\iaf-ibatis\workspace\build.xml:34: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
    [javac] Compiling 210 source files to D:\Hudson\jobs\iaf-ibatis\workspace\target\classes
    [javac] D:\Hudson\jobs\iaf-ibatis\workspace\src\com\ibatis\common\jdbc\SimpleDataSource.java:52: com.ibatis.common.jdbc.SimpleDataSource 不是抽象的,并且未覆盖 java.sql.Wrapper 中的抽象方法 isWrapperFor(java.lang.Class)
    [javac] public class SimpleDataSource implements DataSource {
    [javac]        ^
    [javac] D:\Hudson\jobs\iaf-ibatis\workspace\src\com\ibatis\sqlmap\engine\type\CallableStatementResultSet.java:29: com.ibatis.sqlmap.engine.type.CallableStatementResultSet 不是抽象的,并且未覆盖 java.sql.ResultSet 中的抽象方法 updateNClob(java.lang.String,java.io.Reader)
    [javac] public class CallableStatementResultSet implements ResultSet {
    [javac]        ^
    [javac] 注意:某些输入文件使用或覆盖了已过时的 API。
    [javac] 注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
    [javac] 2 错误

BUILD FAILED
D:\Hudson\jobs\iaf-ibatis\workspace\build.xml:47: The following error occurred while executing this line:
D:\Hudson\jobs\iaf-ibatis\workspace\build.xml:34: Compile failed; see the compiler error output for details.

Total time: 1 second
Finished: FAILURE

相关推荐

    基于Hudson的持续集成指南

    【Hudson】是一个开源的持续集成工具,用Java编写,它可以监视编译、测试和部署过程,确保软件项目始终处于可发布状态。Hudson支持多种版本控制系统,如Git、SVN等,并提供了丰富的插件体系,用于扩展其功能,如代码...

    持续集成篇--Hudson持续集成服务器的安装配置和使用.pdf

    本文将重点介绍Java领域的持续集成工具——Hudson,以及如何搭建和使用Hudson持续集成服务器。 首先,我们来了解什么是Hudson。Hudson是一个开源的持续集成工具,由Java编写,支持多种操作系统。它能自动构建、测试...

    Hudson持续集成服务器的安装配置和使用

    根据提供的信息,我们可以详细探讨如何安装配置和使用Hudson持续集成服务器。Hudson是一个开源的持续集成工具,用于自动化软件开发中的构建、测试和部署过程。以下内容将围绕Hudson的安装配置及其与相关工具(如SVN...

    Hudson持续集成环境搭建

    ### Hudson持续集成环境搭建 #### 一、概述 Hudson是一种开源持续集成工具,用于自动化构建、测试软件项目,以及监控整个项目的构建流程。本文档将详细介绍如何搭建一个完整的Hudson持续集成环境,并集成了包括SVN...

    hudson持续集成包

    对于这个压缩包文件“hudson”,可能是Hudson的安装包或特定版本的归档,用于在本地或服务器上搭建Hudson环境。为了进一步操作,需要下载并解压该文件,按照Hudson的官方文档或社区指南进行安装和配置。

    Hudson+Maven+Perfore搭建持续集成环境

    【Hudson】是一款开源的持续集成服务器,具有易于配置和丰富的插件体系。其核心优势在于配置简单,且通过插件可以扩展各种功能。例如,安装Tomcat插件后,可以直接将Maven构建的WAR包部署到Tomcat服务器上。Hudson的...

    Hudson+Maven+SVN搭建持续集成环境

    通过以上步骤,我们可以成功搭建一个基于 Hudson、Maven 和 SVN 的持续集成环境。这种环境不仅能够自动化构建过程,还能够有效提高团队的开发效率和代码质量。此外,通过配置合理的构建触发器和构建后操作,还可以...

    Hudson+Maven+SVN 搭建持续集成环境

    【Hudson 持续集成环境的搭建】 Hudson 是一款开源的持续集成工具,它能够自动化软件构建、测试和部署的过程,极大地提高了开发效率和软件质量。与 Maven 和 SVN 结合,我们可以构建一个强大的持续集成环境。Maven ...

    使用Hudson进行持续集成

    他将告诉读者在您的应用开发环境下(实例中包含Windows XP+Tomcat6或Ubuntu Linux+JBoss AS )如何搭建一个Hudson服务器环境,还包含了Hudson中许多配置项的概述,和执行一个自动编译、测试、报告过程的示例。

    Hudson+Maven+Svn搭建持续集成环境.docx

    Hudson是一种开源的持续集成服务器,以其简单易用和丰富的插件框架著称。Maven则是一个强大的项目管理和构建工具,广泛应用于Java项目。Subversion作为版本控制系统,用于管理代码变更。 **一、开发工具介绍** 1. ...

    Hudson平台搭建及使用

    Hudson是一个开源的持续集成(CI)服务器,它提供了一种自动化构建、测试和部署软件的解决方案。Hudson以其简单易用和丰富的插件功能而受到赞誉,使得项目管理和配置变得更加高效。下面将详细介绍Hudson的特性、搭建...

    Hudson+Maven+SVN 快速搭建持续集成环境

    Hudson是一个开源的持续集成服务器,用于自动化各种项目构建任务。它的主要功能包括自动构建、测试、部署以及监控项目的构建过程。Hudson提供了一个友好的Web界面,方便用户配置和管理构建任务。 1. **安装Hudson**...

    持续集成工具hudson配置和使用介绍

    ### 持续集成工具Hudson配置和使用详解 #### 一、持续集成核心概念及其重要性 持续集成(Continuous Integration, CI)是一种软件开发实践,其核心在于频繁地(通常每天至少一次)将开发人员的工作集成到共享的主...

    Hudson_CI:PHP持续集成

    Hudson是一个开源的、基于Java的持续集成服务器,它允许开发者自动执行构建、测试和部署任务,以确保代码的质量和项目的稳定性。在PHP开发中,持续集成能够帮助团队及时发现并修复问题,提高开发效率。 【标签】:...

    Hudson 持续集成 continuous-integration-with-hudson 英文版

    本书《Continuous Integration with Hudson》英文版由John Ferguson Smart撰写,详细介绍了如何利用Hudson来实现持续集成,并涵盖了从环境搭建到实际应用的各个环节。 ### 安装Hudson #### 环境准备 1. **安装Java...

    hudson集成

    ### Hudson集成:实现持续化集成的关键知识点 #### 一、Hudson简介与基本概念 ...通过上述知识点的学习与实践,开发者可以熟练掌握如何利用Hudson搭建一套完整的持续集成环境,从而提高软件开发效率并保证产品质量。

    持续集成环境搭建

    以下是使用Hudson、Maven和SVN快速搭建持续集成环境的步骤: 1. **安装Hudson**: - 访问Hudson官方网站(http://hudson-ci.org/),下载最新的`hudson.war`文件。 - 将下载的war包放到已安装的Tomcat服务器的...

Global site tag (gtag.js) - Google Analytics