Svn + tomcat + Hudson持续集成部署


1.首先下载hudson

2. 我这里使用hudson-3.0.1版本

3. 下载后hudson是一个 war 包

4. 操作部署:

(1). 直接将hudson的war包复制到tomcat的webapps 中,启动运行tomcat,直接在浏览器地址中输入:http://localhost:16001/hudson-3.0.1/

 (2). 登陆界面如下图:


 

 (3).连接点击”系统管理”和”系统设置”如下图:


 

 (3).在整个页面中配置jdk,ant,maven等信息,如下图:



 

 

 (4).查看下hudson安装的插件,确保已经安装了如下图插件:


 

 (5).如果使用代理上网的话,还需要设置代理服务器,如下图:


 

 (6).创建一个hudson任务,如下图:

 

 

 

最后不要忘记保存!

 

(7). 编写项目部署ant文件,如下:

<?xml version="1.0" encoding="UTF-8"?>

   

<project name="AUTODEPLOY_FSPDRS" default="deploy" basedir=".">

 

    <description>使用【HUDSON-3】自动化持续部署【评审主系统】</description>

   

    <target name="about" description="关于">

       

        <echo>########################</echo>

        <echo>【持续部署项目构建工作文件】</echo>

        <echo>########################</echo>

       

    <echo>【该文件是持续部署构建文件,如果你需要使用Ant构建该应用程序请使用项目根目录'deploy'下build.xml文件构建】</echo>

       

    </target>

   

    <target name="init">

   

    <!--项目名称-->

    <property name="project.name" value="fspdrs" />

    <!--项目jar文件路径-->

        <property name="lib.dir" value="${basedir}/WebRoot/WEB-INF/lib"/>

        <!--项目源文件路径-->

        <property name="src.dir" value="${basedir}/src/main/java"/>

    <!--项目配置文件路径-->

    <property name="configPath" value="config"/>

        <!--构建路径-->

        <property name="build.dir" value="${basedir}/build" />

        <!--应用服务器路径-->

        <property name="app.dir" value="E:\fspdrs\32bit\apache-tomcat-7.0.41"/>

        <!--应用服务器启动日志文件 -->

        <property name="log.file" value="${app.dir}/hudson_subsystem_tomcat.log"/>

        <!--应用服务器jar文件路径-->

        <property name="runtime.lib" value="${app.dir}/lib" />

        <!--应用服务器项目部署路径-->

        <property name="deploy.dir" value="${app.dir}/webapps" />

    <!--项目的WebRoot路径-->

    <property name="webRoot.dir" value="${basedir}/WebRoot" />

        <!--应用服务器项目访问路径-->

        <property name="app.url" value="http://localhost:8006/"/>

       

        <property name="javac.debug" value="on" />

        <property name="javac.optimize" value="off" />

        <property name="javac.target" value="1.6" />

        <property name="javac.source" value="1.6" />

 

        <condition property="tomcat.open">

            <http url="${app.url}" />

        </condition>

 

        <condition property="tomcat.close">

            <not>

                <http url="${app.url}" />

            </not>

        </condition>

 

        <path id="project.class.path">

            <fileset dir="${lib.dir}">

                <include name="*.jar" />

            </fileset>

            <fileset dir="${runtime.lib}">

                <include name="*.jar" />

            </fileset>

        </path>

   

        <tstamp />

        <property environment="env" />

        <delete dir="${build.dir}" />

        <mkdir dir="${build.dir}" />

    </target>

   

    <target name="compaile" depends="init" description="编译java文件">

    <echo>正在编译程序,请稍后...</echo>

         <javac srcdir="${src.dir}" destdir="${build.dir}"

                    includeantruntime="false"nowarn="on"source="1.6"target="1.6"deprecation="true"debug="true"

                    encoding="UTF-8"classpathref="project.class.path">

            </javac>

            <copy todir="${build.dir}">

            <fileset dir="${src.dir}">

                 <exclude name="**/*.java"/>

            </fileset>

                <fileset dir="${configPath}">

                  <include name="**/*.xml" />

                  <include name="**/*.properties" />

                </fileset>

            </copy>

        <echo>编译程序已完成!</echo>

    </target>

 

    <target name="war" depends="compaile">

         <echo>正在压缩War包,请稍后...</echo>

            <war destfile="${basedir}/${project.name}.war"basedir="${basedir}/WebRoot"webxml="${basedir}/WebRoot/WEB-INF/web.xml">

            <lib dir="${lib.dir}" />

                <classes dir="${build.dir}" />

                <fileset dir="${webRoot.dir}">

                    <include name="generalsearch_template/**"/>

                    <include name="help/**"/>

                    <include name="images/**"/>

                    <include name="installerSoft/**"/>

                    <include name="rpt_template/**"/>

                    <include name="script/**"/>

                    <include name="style/**"/>

                    <include name="taglibs/**"/>

                    <include name="weboffice/**"/>

                    <include name="temp/**"/>

                    <include name="WEB-INF/**"/>

                    <include name="403.jsp"/>

                    <include name="404.jsp"/>

                    <include name="500.jsp"/>

                    <include name="code.jsp"/>

                    <include name="error.jsp"/>

                    <include name="login.jsp"/>

                    <include name="timeout.jsp"/>

                </fileset>

            </war>

        <echo>压缩War包已完成!</echo>

    </target>

 

    <target name="tomcat-start">

    <echo>启动部署服务器TOMCAT中,请稍后...</echo>

            <exec dir="${app.dir}/bin" executable="cmd" failonerror="false" output="${log.file}" append="true">

                <env path="${app.dir}" key="CATALINA_HOME" />

                <env path="${app.dir}\temp" key="CATALINA_TMPDIR" />

                <env path="${app.dir}" key="CATALINA_BASE" />

                <arg value="/C startup.bat" />

            </exec>

        <echo>启动部署服务器TOMCAT已完成!</echo>

    </target>

 

    <target name="tomcat-stop" if="">

    <echo>停止部署服务器TOMCAT中,请稍后...</echo>

            <exec dir="${app.dir}/bin" executable="cmd" failonerror="false" output="${log.file}" append="true">

            <env path="${app.dir}" key="CATALINA_HOME" />

            <env path="${app.dir}\temp" key="CATALINA_TMPDIR" />

                <env path="${app.dir}" key="CATALINA_BASE" />

                <arg value="/c shutdown.bat" />

            </exec>

        <echo>停止部署服务器TOMCAT已完成!</echo>

       

        <waitfor maxwait="5" maxwaitunit="second">

            <available file="errors.log" />

        </waitfor>

    </target>

 

    <target name="deploy" depends="war">

    <echo>正在执行自动化构建部署操作,请稍后...</echo>

            <antcall target="tomcat-stop" />

            <waitfor maxwait="60000">

                <not>

                    <http url="${app.url}" />

                </not>

            </waitfor>

            <delete dir="${deploy.dir}/${project.name}.war"></delete>

            <delete dir="${app.dir}/webapps/${project.name}.war"></delete>

            <delete dir="${app.dir}/webapps/${project.name}"></delete>

            <copy todir="${deploy.dir}" file="${basedir}/${project.name}.war"></copy>

            <antcall target="tomcat-start" />

        <echo>自动化构建部署已经完成!</echo>

    </target>

   

</project>

 

(8). 创建好任务后,如下图,点击“构建一次图标”即可,完成持续部署操作。


 

 (9).命令行输入如下图:


 


 

posted @ 2014-02-18 16:25  dcz1001  阅读(270)  评论(0编辑  收藏  举报